tonykang22 / study

0 stars 0 forks source link

[Refactoring] 냄새 17. 메시지 체인 #30

Open tonykang22 opened 2 years ago

tonykang22 commented 2 years ago

냄새 17. 메시지 체인 (Message Chains)


리팩토링 37. 위임 숨기기 (Hide Delegate)


예시

Before

}


``` java
@Getter
public class Person {

    private String name;
    private Department department;

    public Person(String name) {
        this.name = name;
    }

    public void setDepartment(Department department) {
        this.department = department;
    }

}


After

@Getter
public class Person {

    private String name;
    private Department department;

    public Person(String name) {
        this.name = name;
    }

    public void setDepartment(Department department) {
        this.department = department;
    }

    public Person getManager() {
        return getDepartment().getManager();
    }
}
class PersonTest {

    @Test
    void manager() {
        Person tony = new Person("tony");
        Person nick = new Person("nick");
        tony.setDepartment(new Department("m365deploy", nick));

        Person manager = tony.getManager();
        assertEquals(nick, manager);
    }

}