작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
211
0
안녕하세요 강의 잘 듣고 있습니다.
다름이 아니라, 본 강의에선 DefaultTourBuilder 구현체로 빌더 패턴 사용 예시를 보여주셨습니다.
1. 첫 번째 질문으로, 칸쿤 여행의 경우 TourPlan의 모든 멤버 변수에 어떤 값을 할당해야 한다고 가정했을 때, 강의에선 getPlan에서 모든 변수가 제대로 초기화됐는지 체크하는 과정이 생략된 것 같은데 맞을까요?
2. DefaultTourBuilder가 칸쿤 여행과 같이 모든 멤버 변수를 초기화했을 때만 인스턴스를 만들 수 있도록 getPlan에 제약을 걸어놨다면, 본 강의에서 예시로 들었던 당일치기 롱비치 여행은 DefaultTourBuilder로 만들 수 없다고 생각합니다.
여러 방법이 존재하겠지만 강의에서 말씀하신 내용을 되짚어보면 당일치기 여행 인스턴스를 제공하는 ShortTourBuilder를 만드는 게 합리적이란 생각이 듭니다. 강사님의 의견은 어떠신가요?
감사합니다.
답변 1
1
1. 네 그렇게 할 수 있습니다. getPlan으로 최종적인 객체를 만들 때 모든 변수가 설정이 되어있는지 검사할 수 있습니다.
2. 네 말씀하신대로 성격에 따라 여러 Builder를 만들어 쓰시면 됩니다. 그런데 Plan이 모든 필드를 가지고 있어야 한다는 제약을 어디에 둘지에 따라 조금 달라질 것 같네요. 그 책임을 TourPlan에 둘거라면, Plan 자체를 인스턴스로 만들고 하나의 Builder에서는 여러 타입의 Plan을 만들어 줄 수도 있을테구요. 반대로 Builder에서 책임 진다면 말씀하신대로 Plan은 그대로 두고 Builder만 늘릴 수도 있겠네요.