8-1.과잉 중개 메서드 Middle Man

[ 2017-08.21 작성 ]

어떤 클래스가 자신의 일이 거의 없이 다른 클래스로 위임하는 역할만 담당한다면, 역할을 재 조명 해보아야 한다. 클라이언트가 바로 호출하는 형식으로 바꾼다.

class A
{
    object getCValue()
    {
        return b.getCValue();
    }
}

example code

MiddleMan.png

public class Person {
   Department _department;
  public Person getManager(){
   return _department.getManager();
  }
}

public class Department {
   private Person _manager;
  public Department (Person manager){
      _manager = manager;
  }
  
  public Person getManager() {
      return _manager();
  }
}

Person 클래스가 Department 클래스를 숨기고 있습니다.
client가 manager를 찾기 위해 묻습니다.
Manager = john.getManager();
그 사람이 물어볼 필요가 있습니다.
department.getManager();