c++设计模式--建造者模式
来源:互联网 发布:程序员应届生个人简历 编辑:程序博客网 时间:2024/06/09 23:42
// BuilderPattern.cpp : 定义控制台应用程序的入口点。
//通过此例程了解设计模式里的“建造者模式”
#include "stdafx.h"#include <stdlib.h>#include <iostream>using namespace std; //抽象类,用来安排创建人的具体流程,其他类必须遵循这个流程,但是可以自己具体实现class CPersonBuilder{public: virtual void BuildHead()=0; virtual void BuildBody()=0; virtual void BuildArmLeft()=0; virtual void BuildArmRight()=0; virtual void BuildLegLeft()=0; virtual void BuildLegRight()=0;}; //创建瘦子的类class CThinPersonBuilder:public CPersonBuilder{public: CThinPersonBuilder() { cout<<"is creating thin person "<<endl<<endl; } ~CThinPersonBuilder() { cout<<"is finished for thin person"<<endl<<endl; }public: void BuildHead() { cout<<"BuildHead"<<endl; } void BuildBody() { cout<<"BuildBody(thin)"<<endl; } void BuildArmLeft() { cout<<"BuildArmLeft"<<endl; } void BuildArmRight() { cout<<"BuildArmRight"<<endl; } void BuildLegLeft() { cout<<"BuildLegLeft"<<endl; } void BuildLegRight() { cout<<"BuildLegRight"<<endl; }}; //创建胖子的类class CFatPersonBuilder:public CPersonBuilder{public: CFatPersonBuilder() { cout<<"is creating fat person"<<endl; } ~CFatPersonBuilder() { cout<<"is finished for fat person"<<endl; }public: void BuildHead() { cout<<"BuildHead"<<endl; } void BuildBody() { cout<<"BuildBody(Fat)"<<endl; } void BuildArmLeft() { cout<<"BuildArmLeft"<<endl; } void BuildArmRight() { cout<<"BuildArmRight"<<endl; } void BuildLegLeft() { cout<<"BuildLegLeft"<<endl; } void BuildLegRight() { cout<<"BuildLegRight"<<endl; }}; //指挥者类,用来指挥创建的人是瘦子还是胖子class CPersonDirector{public: CPersonDirector(CPersonBuilder *p) { this->m_p=p; } const void CreatePerson(void) const { m_p->BuildHead(); m_p->BuildBody(); m_p->BuildArmLeft(); m_p->BuildArmRight(); m_p->BuildLegLeft(); m_p->BuildLegRight(); }private: CPersonBuilder *m_p;}; int _tmain(int argc, _TCHAR* argv[]){ cout<<"---------建造者模式测试案例------------------------"<<endl<<endl; CThinPersonBuilder *p_tp=new CThinPersonBuilder(); CPersonDirector *p_dtp=new CPersonDirector(p_tp); p_dtp->CreatePerson(); delete p_tp; delete p_dtp; p_tp=NULL; p_dtp=NULL; cout<<endl<<endl; CFatPersonBuilder *p_fp=new CFatPersonBuilder(); CPersonDirector *p_dfp=new CPersonDirector(p_fp); p_dfp->CreatePerson(); delete p_fp; delete p_dfp; p_fp=NULL; p_dfp=NULL; system("pause"); return 0;}
- C#--设计模式之建造者模式
- 设计模式-------建造者
- 设计模式-建造者
- 建造者设计模式
- 建造者设计模式
- 建造者设计模式
- 设计模式-建造者
- 建造者设计模式
- 建造者设计模式
- 建造者设计模式
- [设计]建造者模式
- 设计模式:建造者模式
- 设计模式---建造者模式
- 设计模式---建造者模式
- 设计模式-----建造者模式
- 设计模式-【建造者模式】
- 设计模式--建造者模式
- 设计模式建造者模式
- memcached安装
- javascript实现省市级联效果
- bt5升级时Setting up w3af (1.2-bt1) ...出现问题的解决方法
- mongoDB——副本集
- java自定义注解
- c++设计模式--建造者模式
- leetcode_question_64 Minimum Path Sum
- linux _c_环境变量
- 参考文献怎么写~(这个老是忘,所以贴在这里)
- 网易游戏面试
- 【黑色蕾丝性感女神XP电脑主题】
- 三路快排 duplicate keys
- 《图解ERP》读书摘要-企业管理难点的总结及根源
- 浅谈 磁盘调度算法(转)