최대 1 분 소요

객체를 생성할 때 생성자를 직접 호출하는 방법도 있지만, Builder 패턴을 사용해서 생성하는 방법도 있다.
생성자를 직접 호출하는 방식은 정해둔 순서대로 파라미터를 설정해야하고 입력하는 값이 어떤 필드에 들어가는지 직접 확인해줘야 하는
번거로움이 있다. 하지만 Builder 패턴을 사용하면 정해둔 순서대로 파라미터를 설정할 필요가 없으며, 입력값이 어느 필드로 들어가는지
또한 확인할 수 있다는 장점이 있다.

Builder 패턴 적용하기

설정

start.spring.io에서 lombok을 Dependencies에 넣고 프로젝트를 받아 시작하자!
다른 Dependency는 진행할 프로젝트에 맞도록 적절히 추가하자.

@Builder

Builder 패턴을 적용할 클래스를 User라고 하면, 클래스 자체에 적용해도 되고 생성자에 적용해도 된다.

//클래스에 적용
@Builder
public class User {
  private int first;
  private int second;
}

//생성자에 적용
public class User {
  private int first;
  private int second;

  @Builder
  public User(int fir, int sec) {
    this.first = fir;
    this.sec = sec;
  }
}
  • @NoArgsConstructor를 사용중이라면 @AllArgsConstructor도 같이 설정해줘야 함

객체 생성

Builder 패턴으로 생성 시 필드를 어떤 순서대로 초기화하든 상관없고 어떤 필드에 입력값이 들어가는지 알 수 있어 가독성이 좋다!

//생성자 직접 호출
User user = new User(1, 2);

//Builder 패턴 사용
User user = User.builder()
                .first(1)
                .second(2)
                .build();

//필드 초기화 순서를 다르게 해도 상관없음
User user = User.builder()
                .second(2)
                .first(1)
                .build();

References

카테고리:

업데이트:

댓글남기기