Builder Pattern

빌더 패턴의 장점

빌더 패턴의 단점

예제

/**
 * 여행 일정
 */
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class TourPlan {
    private String title;
    private int nights;
    private int days;
    private LocalDate startDate;
    private String whereToStay;
    private List<DetailPlan> plans;
}

/**
 * 여행 세부 계획
 */
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class DetailPlan {
    private int day;
    private String plan;
}
public class App {
	    public static void main(String[] args) {
	        TourPlan shortTrip = new TourPlan("오레곤 롱비치", LocalDate.of(2021,7,15));
	
	        TourPlan tourPlan = new TourPlan();
	        tourPlan.setTitle("칸쿤 여행");
	        tourPlan.setNights(2);
	        tourPlan.setDays(3);
	        tourPlan.setStartDate(LocalDate.of(2020, 12, 9));
	        tourPlan.setWhereToStay("리조트");
	        tourPlan.getPlans().add(new DetailPlan(0, "체크인 이후 잠 풀기"));
	        tourPlan.getPlans().add(new DetailPlan(0, "저녁 식사"));
	        tourPlan.getPlans().add(new DetailPlan(1, "조식 부페에서 식사"));
	        tourPlan.getPlans().add(new DetailPlan(1, "해변가 산책"));
	        tourPlan.getPlans().add(new DetailPlan(1, "점심은 햄버거 먹기"));
	        tourPlan.getPlans().add(new DetailPlan(1, "리조트 수영장에서 놀기"));
	        tourPlan.getPlans().add(new DetailPlan(1, "저녁은 BBQ 식당에서 스테이크"));
	        tourPlan.getPlans().add(new DetailPlan(2, "조식은 부페에서 식사"));
	        tourPlan.getPlans().add(new DetailPlan(2, "체크아웃"));
		}
}