c++设计模式之建造模式

来源:互联网 发布:mcafree是什么软件 编辑:程序博客网 时间:2024/05/16 01:56
#include <iostream>using namespace std;class Builder{public:virtual void BuildHead(){}virtual void BuildBody(){}virtual void BuildLeftArm(){}virtual void BuildRightArm(){}virtual void BuildLeftLeg(){}virtual void BuildRightLeg(){}};class ThinBuilder :public Builder{public:void BuildHead(){ cout << "build thin body" << endl; }void BuildBody(){ cout << "build thin head" << endl; }void BuildLeftArm(){ cout << "build thin leftarm"<< endl; }void BuildRightArm(){ cout << "build thin rightarm"<< endl; }void BuildLeftLeg(){ cout << "build thin leftleg" << endl; }void BuildRightLeg(){ cout << "build thin rightleg" << endl; }};class FatBuilder :public Builder{public:void BuildHead(){ cout << "build fat body" << endl; }void BuildBody(){ cout << "build fat head" << endl; }void BuildLeftArm(){ cout << "build fat leftarm" << endl; }void BuildRightArm(){ cout << "build fat rightarm" << endl; }void BuildLeftLeg(){ cout << "build fat leftleg" << endl; }void BuildRightLeg(){ cout << "build fat rightleg" << endl; }};class Director{private:Builder* m_pBuilder;public:Director(Builder* builder){ m_pBuilder = builder; }void Create(){m_pBuilder->BuildHead();m_pBuilder->BuildBody();m_pBuilder->BuildLeftArm();m_pBuilder->BuildRightArm();m_pBuilder->BuildLeftLeg();m_pBuilder->BuildRightLeg();}};int main(){ThinBuilder thin;Director director(&thin);director.Create();cin.get();}


原创粉丝点击