refactoring : method chain - hide delegate
This commit is contained in:
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user