[02] 생성자에 매개변수가 많다면 빌더를 고려하라
핵심 내용
프로퍼티가 많은 객체를 여러 용도로 생성하기 위해서는 어떻게 해야할까
점층적 생성자 패턴이란
public class Person {
private final String firstName; // 필수
private final String lastName; // 필수
private final int age; // 선택적
private final String phoneNumber;// 선택적
private final String address; // 선택적
// 필수 매개변수만 받는 생성자
public Person(String firstName, String lastName) {
this(firstName, lastName, 0);
}
// 필수 매개변수와 age를 받는 생성자
public Person(String firstName, String lastName, int age) {
this(firstName, lastName, age, "");
}
// 필수 매개변수, age, phoneNumber를 받는 생성자
public Person(String firstName, String lastName, int age, String phoneNumber) {
this(firstName, lastName, age, phoneNumber, "");
}
// 모든 매개변수를 받는 생성자
public Person(String firstName, String lastName, int age, String phoneNumber, String address) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.phoneNumber = phoneNumber;
this.address = address;
}
// getters와 setters 생략...
}
// 사용 예시:
Person person1 = new Person("John", "Doe");
Person person2 = new Person("John", "Doe", 25);
Person person3 = new Person("John", "Doe", 25, "123-456-7890");
Person person4 = new Person("John", "Doe", 25, "123-456-7890", "123 Street, City");
점층적 생성자 패턴의 불편한 점
점층적 생성자 패턴의 대안은 없는가? Setter
결론은 빌더 패턴이다
빌더 패턴의 단점은 무엇일까?(=왜 4개 이상일때 좋다고 굳이 개수를 언급까지 한걸까)
Last updated