본문으로 건너뛰기
객체지향 설계 · 디자인 패턴LESSON 15

Builder 패턴: 복잡한 객체를 안전하게 만들기

난이도중급 → 심화
예상 시간65분
선수지식이전 강의

15강. Builder 패턴: 복잡한 객체를 안전하게 만들기

1. 이번 강의에서 해결할 문제​

같은 타입의 생성자 매개변수가 많으면 순서를 바꿔도 컴파일되고 부분 초기화가 생깁니다.

2. 학습 목표​

3. 핵심 개념​

Builder는 단계적 조립과 읽기 좋은 이름이 필요한 복잡한 생성에 씁니다. 필수 값 두세 개뿐이면 생성자와 옵션 구조체가 더 명확합니다.

4. 구현​

NotificationBuilder.h
class NotificationBuilder {
public:
NotificationBuilder& recipient(std::string value);
NotificationBuilder& message(std::string value);
NotificationBuilder& priority(Priority value);
Notification build() const;
private: std::optional<std::string> recipient_, message_;
Priority priority_{Priority::normal};
};

build는 필수 값과 길이를 검증한 뒤 완성된 Notification 값만 반환합니다.

5. 코드가 동작하는 이유​

호출 코드는 각 인자의 의미가 보이고 불완전 객체는 Builder 내부에만 존재합니다.

6. 자주 하는 실수와 해결법​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

Builder 패턴: 복잡한 객체를 안전하게 만들기 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“Builder 패턴: 복잡한 객체를 안전하게 만들기”에서 오류나 데이터 손실을 줄이는 선택은 무엇인가요?
  2. 문제 2“Builder 패턴: 복잡한 객체를 안전하게 만들기” 실습 중 ‘Builder가 유효하지 않은 객체 반환’ 상황을 발견했습니다. 본문과 일치하는 설명은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

15강. Builder 패턴: 복잡한 객체를 안전하게 만들기 미완료 상태