본문 바로가기
Web development/Books

Refactoring - Encapsulate Collection

by 자몬다 2019. 12. 31.
Martin Fowler - Refactoring을 읽고 정리한 글입니다.(170~173p)

 

저자는 캡슐화를 좋아한다. 캡슐화하면 데이터가 언제 어떻게 수정되는지 파악하기 쉽고 구조 수정하기도 쉽기 때문이다.

객체지향 개발자들은 장려하지만 콜렉션 쓰는 개발자는 이렇게 게터가 콜렉션 다 넘겨주면 좋지 않다.

그래서 콜렉션을 수정하는 메서드를 만들어서 쓴다.

기존 모듈 밖에서 콜렉션 수정안하는 팀이라면 (게터세터)메서드만 제공해도 충분할지 모르지만, 아니라면 원본 컬랙션에 직접 접근 못하게 해야된다.

절대 콜랙션 값에 접근하지 못하게 해라. aCustomer.orders.size 대신 aCustomer.numberOfOrders 쓰게해라.

아니면 리드온리로 접근할 수 있게 제공해라.

아니면 사본을 제공해라. 근데 이렇게하면 개발자가 헷갈릴 수 있음. 그리고 콜렉션이 크면 성능이슈가 생김.

중요한건 코드베이스 내의 일관성. 모든 사람이 사용할 수 있도록 하나의 메커니즘만 사용하고, 어떻게 될지 예상할 수 있게 만들어야 한다.

'Web development > Books' 카테고리의 다른 글

Refactoring - Move Statesments into Function  (0) 2019.12.31
Refactoring - Inline Class  (0) 2019.12.31
Refactoring - Introduce Parameter Object  (0) 2019.12.31
Refactoring - Rename Variable  (0) 2019.12.31
Refactoring - Building Test  (0) 2019.12.31

댓글