빌더패턴이란?

사용이유

⇒ 결론 : 빌더 패턴은 이러한 문제들을 해결하기 위해서 별도의 Builder 클래스를 만들어 필수값에 대해서는 생성자를 통해, 선택적인 값들에 대해서는 메소드를 통해 step-by-step으로 값을 처리한 후에 build() 메소드를 통해서 최종적으로 인스턴스를 반환하는 방식이다.

빌더 패턴 사용해보기

  1. 샌드위치 클래스

    → 필수값 : price, size

    → 선택값 : ham, cheese, beverage

/* 샌드위치 */

public class Sandwich{
	private int price;//가격
	private String ham;//햄 종류
	private String cheese; //치즈 종류
	private int size;
	private String beverage; //음료 종류
}

  1. 점층적 생성자 패턴
public Sandwich(){}

public Sandwich(int price, String ham, String cheese, int size, String beverage){

	this.price = price;
	this.ham = ham;
	this.cheese = cheese;
	this.size = size;
	this.beverage = bevereage;
}

public Snadwich(int price, int size){
	this.price = price;
	this.size = size;
}

⇒ 이 방법의 문제점! Optional한 인자에 따라 새로운 생성자를 만들거나 Optional한 필드가 Null값으로 채워지는 이슈가 발생.

//순서 파악이 어렵고, 가독성이 떨어짐
new Sandwich(2400, "smoke ham", "mozarella", 20, "coke");
//불필요한 null을 채워야함
new Sandwich(2000, null, null , 20, null);