해당 포스팅은 인프런 백기선님의 '리팩토링'을 학습 후 정리한 내용입니다.
public class Employee {
private String name;
private String personalAreaCode;
private String personalNumber;
public Employee(String name, String personalAreaCode, String personalNumber) {
this.name = name;
this.personalAreaCode = personalAreaCode;
this.personalNumber = personalNumber;
}
public String personalPhoneNumber() {
return personalAreaCode + "-" + personalNumber;
}
//getter, setter 등
}
personalAreaCode, personalNumber 필드는 전화번호를 의미하는 필드 이므로 클래스로 추출할 필요가 있다.
두개의 필드를 필드로하는 새로운 클로스를 만들자
public class Employee {
private String name;
private TelephoneNumber personalNumber;
public Employee(String name, TelephoneNumber telephoneNumber) {
this.name = name;
this.personalNumber = telephoneNumber;
}
...
//getter, setter 등
}
public class TelephoneNumber {
private String areaCode;
private String number;
@Override
public String toString() {
return this.areaCode + " - " + this.number;
}
...
//getter, setter 등
}
TelephoneNumber 클래스를 만들어 전화번호를 의미하는 필드를 객체 내부 필드에 작성하였다.