Type: Creational

Builder: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。是为了将构建复杂对象的过程和它的部件解耦。Builder负责构建部件,Director负责处理构建的过程。

#include <iostream>
using namespace std;class Part{};class Product
{
public:Product(Part* pPartA, Part* pPartB, Part* pPartC){};
};class Builder
{
public:virtual void buildPartA()=0;virtual void buildPartB()=0;virtual void buildPartC()=0;
};class ConcreteBuilder: public Builder
{
public:void buildPartA(){cout<<"Build Part A"<<endl;mPartA = new Part;};void buildPartB(){cout<<"Build Part B"<<endl;mPartB = new Part;};void buildPartC(){cout<<"Build Part C"<<endl;mPartC = new Part;};Product* getResult(){cout<<"Get Result"<<endl;return new Product(mPartA, mPartB, mPartC);};
private:Part *mPartA, *mPartB, *mPartC;
};class Director
{
public:Director(Builder* pBuilder):m_pBuilder(pBuilder){};void construct(){cout<<"Director construct"<<endl;m_pBuilder->buildPartA();m_pBuilder->buildPartB();m_pBuilder->buildPartC();};
private:Builder* m_pBuilder;
};int main()
{ConcreteBuilder* pBuilder = new ConcreteBuilder;Director *pDirector = new Director(pBuilder);pDirector->construct();pBuilder->getResult();system("pause");return 0;
}

设计模式[20]-Builder相关推荐

  1. Android设计模式之——Builder模式

    一.介绍 Builder模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细的控制对象的构造流程.该模式是为了将构建复杂对象的过程和它的部件解耦,使得构建过程 ...

  2. Java设计模式之Builder模式

    Java设计模式之Builder模式 Java设计模式之Builder模式 简介 适用性 用LOL的出装备的顺序为例 基本实现代码 BasePerson的实现 DeMaXiYa的实现 QiTianDa ...

  3. 「设计模式(六) - Builder模式」

    「设计模式(六) - Builder模式」 一.可定制化的 电脑的组装在生活中并不陌生,大家都有电脑,当然需求不一样配置也不一样.以Macbook Pro为例,像UI设计对图像模块GPU要求比较高,跑 ...

  4. Android常用设计模式之Builder模式理解

    Android常用设计模式之Builder模式 1 单例模式 2 Builder模式 Builder模式的应用场景 总结 1 单例模式 单例模式之前有详细的介绍,可移步到链接: 常见的单例模式及其特点 ...

  5. Java 设计模式之Builder模式

    设计模式系列 创建型设计模式 Java 设计模式之单例模式 Java 设计模式之静态工厂方法模式 Java 设计模式之工厂方法模式 Java 设计模式之抽象工厂模式 Java 设计模式之Builder ...

  6. 生成器设计模式(Builder Design Pattern)[论点:概念、图示、示例、框架中的应用、场景]

    文章目录 概念 相关图示 代码示例 框架中的应用 场景 多个生成器(Concrete Builder): 单个生成器 概念 生成器设计模式(Builder Design Pattern)是一种创建型设 ...

  7. 设计模式之Builder模式 (C++实现)

    刚开始我一直感觉建造者模式不太好懂,也许是我笨了点缘故,勤能补拙嘛,所以只能多看多想了 大话设计模式里面那个对于建造者模式我讲解,个人感觉不太好理解,我是看了很多遍也没体会到那样设计的精髓,后来在另一 ...

  8. 码农小汪-设计模式之-Builder模式

    建造者模式 将一个复杂的对象的构建与它的表示分离,使得同样构建的过程中可以创建不同的表示.这个话语看起来,好累啊!真心很难理解. 下面是它的UML图: 抽象建造者角色(Builder):为创建一个Pr ...

  9. Objective-C设计模式——生成器Builder(对象创建)

    生成器 生成器,也成为建造者模式,同样是创建对象时的设计模式.该模式下有一个Director(指挥者),客户端知道该类引用用来创建产品.还有一个Builder(建造者),建造者知道具体创建对象的细节. ...

最新文章

  1. C++——简单数据类型及布尔类型
  2. JAVA对象转为Java String的几种常用方法
  3. 程序员的自我修养三目标文件里有什么
  4. webview gif android,使用WebView android读取Gif图像
  5. 132.非对称加密?数据安全的特征?
  6. mixin模式 python_总结了 90 条写 Python 程序的建议
  7. C++ 重载运算符 继承 多态 (超详细)
  8. jzoj3847-都市环游【矩阵乘法】
  9. P4878 道路修建-美国
  10. 典型案例:Bug 9776608-多个用户使用错误密码登录同一个用户而造成的用户无法登录异常...
  11. Scala paralle
  12. 第一:MySQL安装和配置(超详细)
  13. 华为手机坏了数据怎么导出_更换手机怎么把旧手机便签里的内容怎么全部导出到电脑...
  14. 乾颐堂现任明教教主(2014年课程)TCPIP协议详解卷一 第七节课笔记
  15. 拼图复原_玩过上百款拼图后,我总结出这份超详细的拼图年龄对照表!(收藏贴)...
  16. Python 数独求解
  17. MAC电脑关机卡住黑屏菊花转圈的解决方法
  18. 上古卷轴5:重制版窗口化运行1920*1080画面显示不全的问题解决
  19. 深入理解Plasma(四)Plasma Cash
  20. Linux常用命令——jwhois命令

热门文章

  1. python中类型错误、计数不采用关键字的错误怎么改_Learning/Python-面试问题.md at master · yxxyyx1314/Learning · GitHub...
  2. 使用Retrofit时,对参数进行加密
  3. 发布开源库的踩坑经历:jitpack.io
  4. java 环境配置 mac_Java:配置环境(Mac)——JDK
  5. html5显示字幕信息,HTML5 Placeholder实现input背景文字提示效果
  6. python中easygui最新下载教程_python怎么下载easygui
  7. 尽量使用const、enum、inline代替#define
  8. 【Linux】10.安装和开启ftp服务
  9. matlab和vs2008联合编程
  10. Apache下的ArrayUtils工具类总结