JPA @Builder

아이스__아메리·2022년 10월 7일
0

JPA

목록 보기
7/18

정보들은 자바빈즈패턴처럼 받되, 데이터 일관성을 위해 정보들을 다 받은 후에 객체를 생성한다.

@Builder
public class Person {
    private final String name;
    private final int age;
    private final int phone;
}


Person person = Person.builder() // 빌더어노테이션으로 생성된 빌더클래스 생성자
    .name("seungjin")
    .age(25)
    .phone(1234)
    .build();

빌더패턴을 적용하면 다음과 같은 장점이 있다.

  • 불필요한 생성자의 제거
  • 데이터의 순서에 상관없이 객체생성 가능
  • 명시적 선언으로 이해하기가 쉽고
  • 각 인자가 어떤 의미인지 알기 쉽다.
  • setter메서드가 없으므로 변경 불가능한 객체를 만들수있다.
  • 한번에 객체를 생성하므로 객체일관성이 깨지지 않는다.
  • build()함수가 null인지 체크해주므로 검증이 가능한다.
  • 안그러면 set하지않은 객체에대해 get을 하게되는경우 nullPointerExcetpion발생 등의 문제

빌더패턴은 다음과 같이 만들어진다.

  • A클래스 내부에 빌더클래스를 생성한다.
  • 각 멤버변수별 메서드를 작성하는데, 각 메소드는 변수에 값을 set하고 빌더객체를 리턴한다.
  • build()메서드는 필수 멤버변수의 null체크를 하고 지금까지 set된 builder를 바탕으로 A클래스의 생성자를 호출하고 인스턴스를 리턴한다.
profile
츠케멘 좋아

0개의 댓글