메시지 체인(Message Chains)

박상훈·2022년 8월 18일
0
레퍼런스를 따라 계속해서 메서드 호출이 이어지는 코드
해당 코드의 클라이언트가 코드 체인을 모두 이해해야 한다
체인 중 일부가 변경되면 클라이언트의 코드도 변경이 필요해진다

위임 숨기기(Hide Delegate)

  • 캡슐화란 어떤 모듈이 시스템의 다른 모듈을 최소한으로 알아야 하는 것

아래 코드를 사용하는 메인 함수에서 Person.getDepartment.getManger 를 이용하는 경우
Person 코드의 getManager 만 호출하고 Department 를 통해 생성된다는 정보를 은닉할 수 있다

before

class Department {
    private String chargeCode;
    private Person manager;
    
    // ...getter, constructor
}

class Person {
    private String name;
    private Department department;
    
    // ...getter, setter, constructor
}

after

class Person {
    afterPerson getManager() {
        return getDepartment.getManager();
    }
}
profile
엔지니어

0개의 댓글