创建模式->建造者模式
来源:互联网 发布:java前端和后端的区别 编辑:程序博客网 时间:2024/04/30 21:48
建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一种对象创建型模式
建造者模式的定义将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示(DP)。《大话设计模式》举了一个很好的例子——建造小人,一共需建造6个部分,头部、身体、左右手、左右脚。与工厂模式不同,建造者模式是在导向者的控制下一步一步构造产品的。建造小人就是在控制下一步步构造出来的。创建者模式可以能更精细的控制构建过程,从而能更精细的控制所得产品的内部结构。下面给出建造者模式的UML图,以建造小人为实例。
对于客户来说,只需知道导向者就可以了,通过导向者,客户就能构造复杂的对象,而不需要知道具体的构造过程。下面给出小人例子的代码实现。
[cpp] view plain copy print?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 head"<<endl; } void BuildBody() { cout<<"build thin body"<<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() { FatBuilder Fat; Director director(&Fat); director.Create(); return 0; }
0 0
- 创建模式->建造者模式
- 创建型模式-建造者
- 创建型模式-建造者
- 建造者模式(创建型)
- (创建型模式)Builder 建造者模式
- 创建型模式之建造者模式
- 建造者模式Builder(创建模式)
- 四:创建型模式:建造者模式
- 创建类模式4--建造者模式
- 创建模式值建造者模式
- 创建型模式-Builder ( 建造者模式 )
- 创建型模式-建造者模式
- 创建型模式之建造者模式
- 创建型模式 --- 建造者模式(Builder)
- 创建型模式之建造者模式
- 创建型设计模式-建造者模式
- 创建型模式之建造者模式
- 创建模式之二 建造者模式
- String类型转List<String>
- 相机的连拍和水印的功能
- PHP C扩展开发
- 忽略掉已经被git管理的文件 git rm --cached
- Ubuntu config for SLAM
- 创建模式->建造者模式
- React Native控件之ListView
- [BZOJ1048][HAOI2007]分割矩阵(数学相关+记搜)
- Linux Shell 之 对文件中的行、单词、字符进行迭代
- 乱码解决
- uvc的usb摄像头笔记
- 异常
- Python入门:学会创建并调用函数
- Cordova和 PhoneGap的关系: