Builder Pattern은 객체 생성에서 주입하는 것에 대한 방식이다.
객체를 생성할때는 두가지 패턴이 존재하는데 생성자 패턴과 빌더 패턴이다.
생성자 패턴은 우리가 흔하게 사용했던 Constructor이다.
public class CarImpl {
private String id = "1";
private String name = "carTest";
Car car1 = new Car(id, name);
Car car2 = new Car(name, id);
}
위는 Car는 객체를 구현한건데 일반 생성자 패턴을 사용하면 코드에서 파라미터에 대한 정확성과 오류를 찾기 어려워지게 된다. 즉, 다른사람이 코드를 볼때 어떤 파라미터가 정확하게 전달 되었는지 확인하기 힘들다.
그렇기에 Builder를 사용한다.
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class Car {
private String id;
private String name;
@Builder // 생성자를 만든 후 그 위에 @Builder 애노테이션 적용
public Car(String id, String name) {
this.id = id;
this.name = name;
}
}
이렇게 해서 간단하게 Lombok을 통해 @Builder 애노테이션을 생성자를 만든 후 적용 해준다.
public class CarImpl {
private String id = "1";
private String name = "carTest";
Car car3 = Car.builder()
.id(id)
.name(name)
.build();
}
그 후 이런식으로 생성자 파라미터 주입을 해준다.
이렇게 하면 각 인자에 대한 파라미터 주입이 되게 명확해진다.
@Builder
데이터의 일관성을 위해 정보들을 다 받은 후 객체를 생성한다.
불필요한 생성자의 제거
데이터의 순서에 상관없이 객체 생성 가능
가독성 증가
setter 메서드가 없으므로 변경 불가능한 객체를 만들 수 있다.
build() 함수가 null인지 체크해주므로 검증이 가능하다.
'spring boot' 카테고리의 다른 글
Spring Boot Thymeleaf Caching(템플릿 캐싱) (0) | 2023.03.13 |
---|---|
Window 환경에서 JDK 설치 & 환경변수 설정 (0) | 2023.03.07 |
Spring Boot, React 연동하기 (0) | 2023.02.15 |
Spring Boot (0) | 2022.11.04 |