PSD( Private-Self-Development )

최소 지식 원칙( 데메테르의 법칙 ) 본문

Backend/기타

최소 지식 원칙( 데메테르의 법칙 )

chjysm 2023. 5. 23. 09:47

최소 지식

복잡하게 얽혀 있는 서브 시스템의 어떤 부분을 수정할 경우 관련된 다른 부분도 수정해야 하는 경우가 있다.
이때, 어느 하나를 수정하기 위해서 관련된 많은 정보를 알고 있어야 한다.
이처럼 어떤 작업을 할 때 많은 지식이 있어야 한다면 코드를 수정하기 힘들어진다.

이는 곧 진입 장벽이 되며, 이전 회사의 코드 또한 같은 문제를 가지고 있었다.
때문에 최소 지식만 적용해 객체의 사용 작용을 설정해야 한다.


HOW

1. 객체의 메서드 호출 시 단순화하자.
   불필요한 객체의 생성 루틴과 재호출을 코드에 삽입하여 코드의 비가독성과 복잡성을 증가시키지 말자.


2. 4가지 규칙을 잘 지키는 객체를 만들자

  • 자기 자신만의 객체 사용
  • 메서드에 전달된 매개변수 사용
  • 메서드에서 생성된 객체 사용 
  • 객체에 속하는 메서드 사용 

 

예시

@AllArgsConstructor
public class Test {
    private Member member; // 이 클래스의 멤버 변수 => 메서드 호출 가능 
    
    public call(Key key){
        // 메서드 내부 생성 객체 => 메서드 호출 가능 
        Home home = new Home();
        home.call();
        
        // 매개변수 => 메서드 호출 가능 
        key.call();

        // 이 클래스의 멤버 변수 => 메서드 호출 가능
        member.call();
        
        // 이 클래스의 구성 요소 => 메서드 호출 가능
        this.test();
    }
    
    public void test(){}
}

'Backend > 기타' 카테고리의 다른 글

헥사고날 아키텍처(Hexagonal Architecture)  (0) 2024.07.15
도커( Doker )  (0) 2024.04.29
Nginx 란?  (0) 2023.01.19
DDD(Domain Driven Design)  (0) 2022.12.01
단위테스트( Unit Test ) 와 테스트 주도 개발( TDD )  (0) 2022.11.14