C++设计模式从0进击-4-建造者模式
来源:互联网 发布:微信积分商城php源码 编辑:程序博客网 时间:2024/04/30 07:44
建造者模式(Builder)
意图
建造者模式
适用性
当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
当构造过程必须允许被构造的对象有不同的表示时。
建造者模式(Builder)
MM最爱听的就是“我爱你”这句话了,见到不同地方的MM,要能够用她们的方言跟她说这句话哦,我有一个多种语言翻译机,上面每种语言都有一个按键,见到MM我只要按对应的键,它就能够用相应的语言说出“我爱你”这句话了,国外的MM也可以轻松搞定,这就是我的“我爱你 ”builder。(这一定比美军在伊拉克用的翻译机好卖)
建造者模式:将对象的内部表象和对象的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行的建造过程。
class Person{public:virtual void CreateHead() = 0;virtual void CreateHand() = 0;virtual void CreateBody() = 0;virtual void CreateFoot() = 0;};class ThinPerson: public Person{public:virtual void CreateHead(){cout << "Create Thin Head" << endl;}virtual void CreateHand(){cout << "Create Thin Hand" << endl;}virtual void CreateBody(){cout << "Create Thin Body" << endl;}virtual void CreateFoot(){cout << "Create Thin Foot" << endl;}};class ThickPerson: public Person{public:virtual void CreateHead(){cout << "Create Thick Head" << endl;}virtual void CreateHand(){cout << "Create Thick Hand" << endl;}virtual void CreateBody(){cout << "Create Thick Body" << endl;}virtual void CreateFoot(){cout << "Create Thick Foot" << endl;}};//指挥者类class Direct{private:Person * p;public:Direct(Person * temp){p = temp;}void Create(){p->CreateHead();p->CreateHand();p->CreateBody();p->CreateFoot();}};int _tmain(int argc, char argv[]){Person * p = new ThickPerson();Direct * d = new Direct(p);d->Create();delete p;delete d;return 0;}
0 0
- C++设计模式从0进击-4-建造者模式
- C++设计模式从0进击-2-抽象工厂模式
- C++设计模式从0进击-3-工厂模式
- C++设计模式从0进击-5-单例模式
- C++设计模式从0进击-6-原型模式
- C#--设计模式之建造者模式
- 设计模式(4)-建造者模式(Builder)
- 设计模式4-建造者模式
- 设计模式(4):建造者模式
- <设计模式4>建造者模式
- 设计模式(4)-建造者模式
- 设计模式4-建造者模式
- 设计模式之建造型-建造者模式(4)
- 设计模式-------建造者
- 设计模式-建造者
- 建造者设计模式
- 建造者设计模式
- 建造者设计模式
- 转载:中国电子工程师的悲哀
- Java基于Socket文件传输示例
- 《离婚律师》10句经典台词(双语版)
- 程序员网址大全
- 信号的阻塞处理案例
- C++设计模式从0进击-4-建造者模式
- Android中的Context<1>
- uva 321(隐式图搜索)
- GetStartPosition和GetNextAssoc的作用
- 快速排序——HDU 1425
- poj 1330 Nearest Common Ancestors(LCA模板)
- Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules (web项目不能加载到服务器)) .
- PCL1.6.0+vs2010+win7/xp+32位配置
- /proc/cpuinfo详解