데메테르 법칙(Law of Demeter, LoD)은 코드가 직접 관계있는 대상과 상호작용하도록 의존 범위를 제한하는 객체 지향 설계 원칙이다. 최소 지식 원칙(Principle of Least Knowledge)이라고도 한다. 다른 객체의 내부를 연달아 들여다봐야 일을 할 수 있다면, 그 내부 구조가 바뀔 때 함께 고칠 곳이 늘어난다. (데메테르 법칙 소개)
얼마나 알아야 일을 할 수 있을까
- 예를 들어 도록 제작 코드가 작품 저장소의 폴더와 파일 구조를 직접 찾아다니기보다, 필요한 작품 정보를 돌려주는 기능을 호출하도록 설계해볼 수 있다.
- 메서드 안에서 사용할 대상에는 전달받은 객체, 자신을 구성하는 직접적인 부분, 그 안에서 생성한 객체 등이 포함된다. 화면에 찍힌 점의 개수보다 실제로 어떤 관계에 의존하는지 살펴야 한다. (데메테르 법칙의 객체 형식)
- 내부 구조를 감추면서도 외부에 필요한 기능은 분명하게 제공한다. 호출을 전달하기만 하는 층이 늘어난다면 KISS의 관점에서 그 구분이 필요한지 다시 살핀다.