모듈은 자신이 조작하는 객체의 속사정을 몰라야 한다는 법칙.
디미터 법칙은 "클래스 C의 메서드 f는 다음과 같은 객체의 메서드만 호출해야 한다고 주장한다.
예시로 보면 다음과 같다.
public class Example {
VariableObject variableObject;
public ReturnObject methodF(ArgumentObject argumentObject) {
CreatedObject createdObject = new CreatedObject();
...
return returnObject;
}
}
위 예시에서, methodF()가 호출할 수 있는 다음과 같은 객체의 메서드만 호출할 수 있다
이때 Example 클래스의 객체는 ReturnObject의 메서드는 호출하면 안 된다.
String tempStr = example.methodF().getSomething();
자료 구조는 무조건 함수 없이 공개 변수만 포함하고 객체는 비공개 변수와 공개 함수를 포함한다면, 문제는 훨씬 간단하리라. 하지만 단순한 자료 구조에도 조회 함수와 설정 함수를 정의하라 요구하는 프레임워크와 표준이 존재한다.
:( 결국, 잡종 구조가 되지 않으려면 개발자가 직접 주의를 기울여가며 코드를 작성하는 수 밖에 없는 것 같습니다.