设计模式6:建造者模式【创建型】
2012-12-16 18:30
405 查看
#include <iostream> #include <vector> using namespace std; // class CProduct { public: CProduct() { } void Add(char *str) { m_pVec.push_back(str); } void ShowProduct() { vector<char*>::iterator ite = m_pVec.begin(); for (; m_pVec.end() != ite; ite++) { cout<<*ite<<endl; } } private: vector<char*> m_pVec; }; // struct IBuilder { public: IBuilder() { m_pProduct = new CProduct; } virtual ~IBuilder() { if(m_pProduct) { delete m_pProduct; m_pProduct = NULL; } } virtual void BuildStep1() = 0; virtual void BuildStep2() = 0; virtual void BuildStep3() = 0; CProduct* GetProduct() { return m_pProduct; } protected: CProduct *m_pProduct; }; class CBuilderA : public IBuilder { public: virtual ~CBuilderA() { } virtual void BuildStep1() { m_pProduct->Add("A Step 1"); } virtual void BuildStep2() { m_pProduct->Add("A Step 2"); } virtual void BuildStep3() { m_pProduct->Add("A Step 3"); } }; class CBuilderB : public IBuilder { public: virtual ~CBuilderB() { } virtual void BuildStep1() { m_pProduct->Add("B Step 1"); } virtual void BuildStep2() { m_pProduct->Add("B Step 2"); } virtual void BuildStep3() { m_pProduct->Add("B Step 3"); } }; // class CDirector { public: CDirector() { } ~CDirector() { } void Produce(IBuilder *pBuilder) { pBuilder->BuildStep1(); pBuilder->BuildStep2(); pBuilder->BuildStep3(); } }; // void main() { CDirector director; // CBuilderA builderA; director.Produce(&builderA); CProduct *pProductA = builderA.GetProduct(); pProductA->ShowProduct(); // CBuilderB builderB; director.Produce(&builderB); CProduct *pProductB = builderB.GetProduct(); pProductB->ShowProduct(); }
相关文章推荐
- 创建型设计模式-建造者设计模式
- 创建型设计模式-建造者模式
- 从FLC中学习的设计模式系列-创建型模式(4)-建造者
- 设计模式之创建型模式---建造者模式
- 设计模式5——创建型模式之建造者模式
- 设计模式(创建型)之建造者模式
- 【转】设计模式——创建型设计模式总结(简单工厂、普通工厂、抽象工厂、建造者、原型和单例)
- java设计模式——创建型之建造者模式
- 设计模式 : 创建型模式——建造者模式
- Java设计模式(5)——创建型模式之建造者模式(Builder)
- java-设计模式(创建型)-【建造者模式】
- 设计模式——创建型设计模式总结(简单工厂、普通工厂、抽象工厂、建造者、原型和单例)
- 设计模式(六)建造者(创建型)
- GoF23种设计模式之创建型模式之建造者模式
- 设计模式5——创建型模式之建造者模式
- GoF23种设计模式之创建型模式之建造者模式
- 23种设计模式2--创建型模式(工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式)
- 设计模式——创建型设计模式总结(简单工厂、普通工厂、抽象工厂、建造者、原型和单例)
- 设计模式(三):建造者模式Builder(创建型模式)
- 【23种设计模式】创建型模式 > 建造者模式