새로운 질서 위키

데메테르 법칙

데메테르 법칙(Law of Demeter, LoD)은 코드가 직접 관계있는 대상과 상호작용하도록 의존 범위를 제한하는 객체 지향 설계 원칙이다. 최소 지식 원칙(Principle of Least Knowledge)이라고도 한다. 다른 객체의 내부를 연달아 들여다봐야 일을 할 수 있다면, 그 내부 구조가 바뀔 때 함께 고칠 곳이 늘어난다. (데메테르 법칙 소개)

얼마나 알아야 일을 할 수 있을까

  • 예를 들어 도록 제작 코드가 작품 저장소의 폴더와 파일 구조를 직접 찾아다니기보다, 필요한 작품 정보를 돌려주는 기능을 호출하도록 설계해볼 수 있다.
  • 메서드 안에서 사용할 대상에는 전달받은 객체, 자신을 구성하는 직접적인 부분, 그 안에서 생성한 객체 등이 포함된다. 화면에 찍힌 점의 개수보다 실제로 어떤 관계에 의존하는지 살펴야 한다. (데메테르 법칙의 객체 형식)
  • 내부 구조를 감추면서도 외부에 필요한 기능은 분명하게 제공한다. 호출을 전달하기만 하는 층이 늘어난다면 KISS의 관점에서 그 구분이 필요한지 다시 살핀다.

기타 등등

  • 법칙의 이름은 이를 연구하던 데메테르 프로젝트에서 왔다. 프로젝트의 이름에는 그리스 농업 여신과 소프트웨어를 조금씩 기른다는 비유가 담겨 있다. 출처
  • 연구팀은 2003~2004년에 직접 관계있는 대상 중에서도 같은 관심사에 기여하는 대상과 소통하도록 원칙을 다듬었다. 이 확장형을 LoDC라고 부른다. 출처

#원칙 #프로그래밍 #설계

검색