Design Patterns 2: Builder
阿新 • • 發佈:2018-12-13
將物件的構造過程抽象出來,使得相同的構造過程可以複用。
Each kind of concrete builder(ConcreteBuilder) class takes the mechanism for creating and assembling a complex object and puts it behind an abstract interface(Builder).
struct Builder { virtual void BuildPart() = 0; }; struct ConcreteBuilder1 : Builder { void BuildPart() override { var = 100; } int var; }; struct ConcreteBuilder2 : Builder { void BuildPart() override { var = 100.; } float var; }; struct Director { Builder* builder; void Construct() { builder->BuildPart(); } }; int main() { auto director1 = new Director{ new ConcreteBuilder1 }; auto director2 = new Director{ new ConcreteBuilder2 }; director1->Construct(); director2->Construct(); }