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