建造者模式
来源:互联网 发布:淘宝加盟诈骗案进展 编辑:程序博客网 时间:2024/05/29 12:32
Builder 模式和 AbstractFactory 模式在功能上很相似,因为都是用来创建大的复杂的对
象,它们的区别是: Builder 模式强调的是一步步创建对象,并通过相同的创建过程可以获得不同的结果对象,一般来说 Builder 模式中对象不是直接返回的。而在 AbstractFactory 模式中对象是直接返回的, AbstractFactory 模式强调的是为创建多个相互依赖的对象提供一个同一的接口。
#include <iostream>#include <string>using namespace std;class Product{public: Product() { ProducePart(); cout <<"return a product"<< endl; } void ProducePart() { cout <<"build part of product.."<< endl; } ~Product(){}};class ProductPart{public: ProductPart(){ cout << "build productpart..."<< endl;} ProductPart *BuildPart() { return new ProductPart; } ~ProductPart(){}};/*****************************************************/class Builder{public: virtual ~Builder(){} virtual void BuildPartA(const string &buildPara)=0; virtual void BuildPartB(const string &buildPara)=0; virtual void BuildPartC(const string &buildPara)=0; virtual Product *GetProduct() =0;protected: Builder(){}};class ConcreateBuilder: public Builder{public: ConcreateBuilder(){} ~ConcreateBuilder(){} virtual void BuildPartA(const string &buildPara) { cout << "Step1:Build PartA..."<< buildPara << endl; } virtual void BuildPartB(const string &buildPara) { cout << "Step1:Build PartB..."<< buildPara << endl; } virtual void BuildPartC(const string &buildPara) { cout << "Step1:Build PartC..."<< buildPara << endl; } virtual Product *GetProduct() { BuildPartA("pre-defined"); BuildPartB("pre-defined"); BuildPartC("pre-defined"); return new Product();//产品完成 }};/***************************************************/class Director{public: Director(Builder* bld){ _bld = bld;} ~Director(){} void Construct() { _bld->BuildPartA("user-defined"); _bld->BuildPartB("user-defined"); _bld->BuildPartC("user-defined"); }private: Builder *_bld;};int main(){ Director *d = new Director(new ConcreateBuilder()); d->Construct(); return 0;}
0 0
- Builder 建造者模式
- 建造者模式
- 设计模式-------建造者
- 建造者模式
- 建造者模式(Builder)
- 建造者模式(Builder)
- 建造者模式
- 建造者模式 - builder
- 建造者模式
- Builder建造者模式
- 建造者模式(Builder)
- 建造者模式(builder)
- 建造者模式
- java建造者模式
- 建造者模式
- 建造者模式
- 建造者模式(Builder)
- 建造者模式
- 一个关于回调的问题
- Cocos在android studio下的开发
- 传统MVP用在项目中是真的方便还是累赘?
- 动态规划Dynamic Programming的总结
- TCP/IP协议 之IPV4与IPV6的区别
- 建造者模式
- Android 利用Sensor现实了传感器
- java 多线程 线程之间的通信
- 设计模式(6)-原型模式
- 20170226C++项目班05_C/C++错误异常处理
- ffmpeg移植android编译问题解决
- Helix浅谈算式处理(C++计算器源码发布)
- 被说了很多遍的设计模式---命令模式
- 基础练习 01字串