Law of Demeter와의 연결
Law of Demeter는 "낯선 객체와 너무 깊게 대화하지 말라"는 식으로 요약된다. Lieberherr와 Holland의 1989년 논문 Assuring Good Style for Object-Oriented Programs에서 정리된 원칙이다.[각주 6]
+
디미터의 법칙(Law of Demeter)과의 연결
디미터의 법칙(Law of Demeter)은 "낯선 객체와 너무 깊게 대화하지 말라"는 식으로 요약된다. Lieberherr와 Holland의 1989년 논문 Assuring Good Style for Object-Oriented Programs에서 정리된 원칙이다.[각주 6]
본문 블록 91 → 91
−
컴포지션은 "내가 직접 내부를 뒤지지 않고, 가까운 협력 객체에게 일을 맡긴다"는 점에서 Law ofDemeter와 연결된다.
+
컴포지션은 "내가 직접 내부를 뒤지지 않고, 가까운 협력 객체에게 일을 맡긴다"는 점에서 디미터의법칙과 연결된다.
본문 블록 93 → 93
−
따라서 Law ofDemeter의 핵심은 점 개수를 세는 것이 아니다. 외부 코드가 내부 구조를 알아야만 판단할 수 있는 상태를 줄이는 것이다.
+
따라서 디미터의법칙의 핵심은 점 개수를 세는 것이 아니다. 외부 코드가 내부 구조를 알아야만 판단할 수 있는 상태를 줄이는 것이다.
본문 블록 없음 → 144-145
−
(내용 없음)
+
이 딜레마를 해결하는 근본적인 방법은 'Tell, Don't Ask(묻지 말고 시켜라)' 원칙을 적용하는 것이다. 객체 내부의 데이터를 꺼내와서(Ask) 밖에서 로직을 처리하려 하지 말고, 데이터를 가장 잘 아는 객체에게 계산이나 행위를 위임(Tell)해야 한다.
그러면 래퍼 폭발 없이도 자연스럽게 캡슐화가 유지되고 컴포지션의 책임을 나눌 수 있다.