디미터 법칙(Law of Demeter : LoD)
객체 간 결합도를 줄이기 위한 원칙으로 객체가 다른 객체와 상호작용할 때,
직접적으로 연관된 객체에만 접근하도록 제한하는 것을 목표로 한다.
흔히 *"친구의 친구와는 대화하지 말라"*는 비유로 설명되며,
LoD는 코드의 모듈성과 유지보수성을 높이는 데 중점을 둔다.
반응형
< LoD의 주요 규칙 >
객체 A가 객체 B의 메서드를 호출할 때, 다음에 해당하는 객체의 메서드만 호출할 수 있도록 권장한다.
자신의 메서드나 필드
자기 자신이 생성하거나 소유한 객체의 메서드
메서드 매개변수로 전달받은 객체의 메서드
전역 변수를 통해 접근 가능한 객체 (되도록 지양)
< 장점 >
- 낮은 결합도(Low Coupling): 클래스 간의 의존 관계를 줄인다.
- 높은 응집도(High Cohesion): 클래스가 자신의 책임만 충실히 하도록 만든다.
- 유지보수성 향상: 구조가 변경되어도 ripple effect가 줄어든다.
- 캡슐화 향상: 객체의 내부 구조를 숨기고 인터페이스만 제공하게 한다.
< 예시 >
이렇게 Customer 클래스에서 getOrderPrice()라는 메서드를 통해 내부 구조를 감추면, 외부에서는 customer.getOrderPrice()만 호출하면 되므로 내부 구조에 의존하지 않게 된다.
class Customer {
private Order order;
public double getOrderPrice() {
return order.getTotalPrice();
}
}
★☆☆☆☆
반응형
'개발 > 게임) 개발관련' 카테고리의 다른 글
개발지식) EFIGS (다국어 유럽 5개 언어) (0) | 2025.05.26 |
---|---|
잡학지식) PLC, DLC ( 제품 수명 관련 용어) (2) | 2025.05.12 |
개발지식) 동기 유발 패턴(Motivation Patterns) : 게임에서 동기 부여의 중요성 (1) | 2025.04.30 |
개발Tip) 소스트리 외부비교 툴 설정(SourceTree : 비교 (0) | 2025.04.08 |
ChatGPT) Task 활용해서 게임뉴스 크롤링하기 : 매일알림 (0) | 2025.03.18 |
댓글