Java Beans나 점층적 생성자 방식은 장단점이 있었다. 만약 immutable한 인스턴스를 생성하면서도 메서드명에 명확한 의미를 주려면 Builder 패턴을 사용하면 된다.
Builder 패턴을 적용한 호출 코드는 다음과 같다.
User user = User.builder(5L)
.name("하하")
.address("대구광역시 동구 용계동")
.highSchool("청구고등학교")
.age(30)
.build();
System.out.println(user);
// User [id=5, name=하하, highSchool=청구고등학교, address=대구광역시 동구 용계동, age=30]
롬복을 통하면 빌더 패턴을 간단히 만들어주지만 직접 구현해보는 코드를 요약하면 다음과 같다
static method를 제공한다class User {
private Long id;
private String name;
private String highSchool;
private String address;
private int age;
]