refactoring : method chain - hide delegate

This commit is contained in:
haerong22
2022-04-06 00:32:51 +09:00
parent fabf7d0255
commit 914b38fd18
5 changed files with 113 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
package com.example.refactoring._17_method_chains._37_hide_delegate;
public class Department {
private String chargeCode;
private Person manager;
public Department(String chargeCode, Person manager) {
this.chargeCode = chargeCode;
this.manager = manager;
}
public String getChargeCode() {
return chargeCode;
}
public Person getManager() {
return manager;
}
}

View File

@@ -0,0 +1,28 @@
package com.example.refactoring._17_method_chains._37_hide_delegate;
public class Person {
private String name;
private Department department;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
Person getManager() {
return getDepartment().getManager();
}
}

View File

@@ -0,0 +1,21 @@
package com.example.refactoring._17_method_chains._37_hide_delegate._before;
public class Department {
private String chargeCode;
private Person manager;
public Department(String chargeCode, Person manager) {
this.chargeCode = chargeCode;
this.manager = manager;
}
public String getChargeCode() {
return chargeCode;
}
public Person getManager() {
return manager;
}
}

View File

@@ -0,0 +1,24 @@
package com.example.refactoring._17_method_chains._37_hide_delegate._before;
public class Person {
private String name;
private Department department;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
}

View File

@@ -0,0 +1,19 @@
package com.example.refactoring._17_method_chains._37_hide_delegate;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class PersonTest {
@Test
void manager() {
Person kim = new Person("kim");
Person nick = new Person("nick");
kim.setDepartment(new Department("m365deploy", nick));
Person manager = kim.getManager();
assertEquals(nick, manager);
}
}