Builder 사용하기
Java에서 Builder 패턴은 객체 생성 및 초기화를 유연하게 다룰 수 있는 디자인 패턴입니다. Builder 패턴은 복잡한 객체의 생성 과정을 단순화하고, 가독성을 향상시키며, 유연성을 제공합니다. 주로 많은 매개변수를 갖는 객체를 생성할 때 사용됩니다.
Builder 패턴은 일반적으로 다음과 같은 구성 요소로 구성됩니다:
Product(생성할 객체): Builder 패턴을 사용하여 생성할 객체입니다. 이 객체는 보통 복잡한 구조를 가지고 있으며, 많은 매개변수를 가질 수 있습니다.
Builder(빌더): 객체 생성을 위한 빌더 클래스입니다. 빌더 클래스는 Product의 생성 및 초기화를 담당하며, 필요한 매개변수를 설정할 수 있는 메서드를 제공합니다.
Director(지시자, 선택적): 빌더를 사용하여 객체를 생성하는 역할을 담당합니다. 복잡한 객체 생성 과정을 지시하고 제어할 수 있습니다. 이 요소는 선택적이며, 필요하지 않은 경우 생략할 수 있습니다.
public class Car {
private String make;
private String model;
private int year;
private int price;
private Car(Builder builder) {
this.make = builder.make;
this.model = builder.model;
this.year = builder.year;
this.price = builder.price;
}
// Getters
public static class Builder {
private String make;
private String model;
private int year;
private int price;
public Builder(String make, String model) {
this.make = make;
this.model = model;
}
public Builder year(int year) {
this.year = year;
return this;
}
public Builder price(int price) {
this.price = price;
return this;
}
public Car build() {
return new Car(this);
}
}
}
위 예제에서는 Car 클래스를 생성하기 위해 Builder 패턴을 사용합니다. Car 클래스는 make, model, year, price와 같은 많은 매개변수를 가지고 있습니다.
먼저, Car 클래스의 내부에는 private 생성자가 있으며, Builder 클래스의 인스턴스를 통해 객체를 생성 및 초기화합니다.
Builder 클래스는 make과 model을 필수 매개변수로 받는 생성자를 가지며, year, price와 같은 선택적 매개변수를 설정할 수 있는 메서드를 제공합니다. 이러한 메서드는 빌더 자신을 반환하므로 메서드 체인을 통해 여러 매개변수를 설정할 수 있습니다.
마지막으로, build() 메서드는 Car 객체를 생성하고 반환합니다. 이 메서드를 호출하여 최종적으로 Car 객체를 생성할 수 있습니다.
Builder 패턴을 사용하면 필요한 매개변수를 선택적으로 설정할 수 있으며, 코드의 가독성을 향상시킬 수 있습니다. 또한, 객체 생성 과정을 유연하게 제어할 수 있어 복잡한 객체를 효과적으로 다룰 수 있습니다.
'DEV' 카테고리의 다른 글
[ORACLE] LEFT JOIN, OUTER JOIN, FULL JOIN (0) | 2023.07.10 |
---|---|
[C++] 포인터 pointer 란? (0) | 2023.07.06 |
[JAVA] spring security 사용하기 (0) | 2023.06.30 |
[JAVA] 현재날짜, 시간 구하기 (0) | 2023.06.30 |
[JAVA] spring json 사용하기 (0) | 2023.06.30 |