생성할 때 지정한 필드 값이 절대로 변경되지 말아야 할땐 그 필드를 설정하는 모든 쓰기 메서드를 삭제하자.
setImmutaleValue -> 함수를 삭제
객체가 생성된 후에는 필드가 변경되지 말아야 한다면, 쓰기 메서드를 작성하지 않아야 한다. 그렇게 하면 확실히 의도가 달성되고 필드가 수정될 가능성을 차단할수 있다. 물론 속성쓰기 메서드를 생성자 안에까지 넣는다. 라는 생각을 가진다면 일관성 논쟁이 있을것 같다.
ps. 어떻게 보면 당연한 내용일수도 있지만 이 항목을 읽어 보니 간단한거지만 참 심오한것 같다..
'Development > Programming' 카테고리의 다른 글
[Refactoring] 생성자 메서드로 전환 (0) | 2013.09.23 |
---|---|
[Refactoring] 메서드 은폐 (0) | 2013.09.17 |
[Refactoring] 매개변수 세트를 객체로 전환 (0) | 2013.09.16 |
[Refactoring] 매개변수 세트를 메서드로 전환 (0) | 2013.09.13 |
[Refactoring] 객체를 통째로 전달 (0) | 2013.09.12 |