// Basket은 불변의 클래스
public class Basket{
private final String name;
private final int numbers;
public static class Builder{
// 필수
private final String name;
// 선택
private int numbers;
// 필수 생성자
public Builder(String name){
this.name = name;
}
// 각각의 속성 설정
public Builder numbers(int val){
this.numbers = val;
return this;
}
// 완료
public Basket build(){
return new Basket(this);
}
}
private Basket(Builder builder){
this.name = builder.name;
this.numbers = builder.numbers;
}
}