스터디 프로젝트 진행하다가 builder라는 개념을 쓰는 예시 코드가 있어서 나도 사용해보려고 찾아봤다.
빌더 패턴(Builder pattern)이란 복합 객체의 생성 과정과 표현 방법을 분리하여 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있게 하는 패턴이다.
출처: 위키백과
생성자가 많고 매개변수가 많다면 Builder 패턴을 고려해서 사용한다.
private User user = User.builder()
.userName("minchoi")
.passwd("1234")
.providerType(ProviderType.LOCAL)
.roleType(RoleType.USER)
.build();
User user2 = user.toBuilder().userName("minchoi2").build();
// user - userName (minchoi)
// user2 - userName (minchoi2)
user를 가져와서 setter를 해가지고 할 필요 없이 그냥 불변의 객체로 user
를 두고 user2
객체를 만들 수 있다.
Lombok의 @Builder
어노테이션을 이용하면 더욱 쉽게 사용 할 수 있음.