建造者模式(生成器模式)
来源:互联网 发布:如何在阿里云建网站 编辑:程序博客网 时间:2024/04/30 04:25
#include <string>#include <iostream>#include <vector>using namespace std;class Product{private:vector<string> product;public:void add(string str){product.push_back(str);}void show(){vector<string>::iterator iter=product.begin();while(iter!=product.end()){cout<<*iter<<" ";++iter;}cout<<endl;}};class Builder{public:virtual void builderA()=0;virtual void builderB()=0;virtual Product *getResult()=0;};class ConcreteBuilder1:public Builder{private:Product *product;public:ConcreteBuilder1(){product=new Product();}virtual void builderA(){product->add("one");}virtual void builderB(){product->add("two");}virtual Product *getResult(){return product;}};class ConcreteBuilder2:public Builder{private:Product *product;public:ConcreteBuilder2(){product=new Product();}virtual void builderA(){product->add("A");}virtual void builderB(){product->add("B");}virtual Product *getResult(){return product;}};class Director{private:Product *p;public:void construct(Builder *bd){bd->builderA();bd->builderB();p=bd->getResult();}Product *getResult(){return p;}};int main(){Director *director=new Director();Builder *bd1=new ConcreteBuilder1();director->construct(bd1);Product *pbd1=director->getResult();pbd1->show();return 0;}/*#include <string>#include <iostream>#include <vector>using namespace std;class Product{private:vector<string> product;public:void add(string str){product.push_back(str);}void show(){vector<string>::iterator iter=product.begin();while(iter!=product.end()){cout<<*iter<<" ";++iter;}cout<<endl;}};class Builder{public:virtual void builderA()=0;virtual void builderB()=0;virtual Product *getResult()=0;};class ConcreteBuilder1:public Builder{private:Product *product;public:ConcreteBuilder1(){product=new Product();}virtual void builderA(){product->add("one");}virtual void builderB(){product->add("two");}virtual Product *getResult(){return product;}};class ConcreteBuilder2:public Builder{private:Product *product;public:ConcreteBuilder2(){product=new Product();}virtual void builderA(){product->add("A");}virtual void builderB(){product->add("B");}virtual Product *getResult(){return product;}};class Director{public:void construct(Builder *bd){bd->builderA();bd->builderB();}};int main(){Director *director=new Director();Builder *bd1=new ConcreteBuilder1();director->construct(bd1);Product *pbd1=bd1->getResult();pbd1->show();Builder *bd2=new ConcreteBuilder2();director->construct(bd2);Product *pbd2=bd2->getResult();pbd2->show();return 0;}*/
0 0
- 建造者模式(生成器模式)
- 建造者模式(生成器模式)
- 建造者模式(生成器模式)
- 建造者模式(生成器模式)
- 建造者模式,生成器模式
- 建造者模式(生成器模式)
- 建造者模式/生成器模式
- builder(生成器/建造者模式)
- c++设计模式(建造者模式(生成器模式))
- 设计模式学习-----建造者模式(生成器模式)
- 设计模式-------------建造者模式(生成器模式)
- 创建型模式之建造者模式(生成器模式)
- JAVA设计模式---建造者模式(生成器模式)
- 【设计模式】建造者(生成器)
- 设计模式-(4)生成器(建造者)模式
- 23种设计模式-23-建造者(生成器)模式
- 设计模式——生成器(建造者)模式
- 建造者模式 - Builder 生成器模式
- linux下vpn服务器配置和管理
- Myeclipse svn插件修改服务器地址
- AnnotationAwareAspectJAutoProxyCreator is only available on Java 1.5 and higher
- Java内存与垃圾回收调优
- nyoj-5 Binary String Matching
- 建造者模式(生成器模式)
- ffmpeg 中av_rescale_rnd 的含义
- SoapUI利用Groovy把外部数据加载到request中
- Android版本检测与更新
- GreenPlum简介
- ARC工程中添加非ARC文件,或者非ARC环境中添加ARC文件
- 谷歌学术介绍
- 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
- 库克裸捐:拥抱世界的苹果