본문 바로가기
개발/게임) 개발관련

개발원칙)디미터 법칙(Law of Demeter : LoD)

by 테샤르 2025. 5. 8.

디미터 법칙(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();
    }
}

 

 

 

★☆☆☆☆

 

반응형

댓글