구조 #pragma once #include #include class ISubject { public: virtual void Operation() = 0; virtual void SetName(std::string& name) = 0; }; class Subject : public ISubject { public: void Operation() override { std::cout SetName("SubjectA"); ISubject* subject = builder->GetSubject(); subject->Operation(); system("pause"); return 0; } 생성자를 통해 객체(Subject)를 직접 생성하는 대신에, 빌더 객체(Builder)가 객체의 생성을 대신 수행하게 ..