建造者模式原理:建造模式主要是用于产生对象的各个组成部分,而抽象工厂模式则用于产生一系列对象,建造者模式而且要求这些对象的组成部分有序。

代码如下:

#include <iostream>
using namespace std;class Builder
{
public:virtual void buildHead(){}virtual void buildBody(){}virtual void buildLeftArm(){}virtual void buildRightArm(){}virtual void buildLeftLeg(){}virtual void buildRightLeg(){}
};
class BuilderFat:public Builder
{
public:virtual void buildHead(){cout << "fat head" <<endl;}virtual void buildBody(){cout << "fat Body" << endl;}virtual void buildLeftArm(){cout << "fat Left Arm" <<endl;}virtual void buildRightArm(){cout << "fat Right Arm" <<endl;}virtual void buildLeftLeg(){cout << "fat Left Leg" <<endl;}virtual void buildRightLeg(){cout << "fat Right leg" <<endl;}
};class BuilerThin:public Builder
{
public:virtual void buildHead(){cout << " thin head" <<endl;}virtual void buildBody(){cout << "thin Body" << endl;}virtual void buildLeftArm(){cout << "thin Left Arm" <<endl;}virtual void buildRightArm(){cout << "thin Right Arm" <<endl;}virtual void buildLeftLeg(){cout << "thin Left Leg" <<endl;}virtual void buildRightLeg(){cout << "thin Right leg" <<endl;}
};class Director
{
public:Director(Builder *ptmp = NULL):pBuilder(ptmp){}void createPerson(){pBuilder->buildHead();pBuilder->buildBody();pBuilder->buildLeftArm();pBuilder->buildRightArm();pBuilder->buildRightArm();pBuilder->buildLeftLeg();pBuilder->buildRightLeg();}
private:Builder* pBuilder;
};int main()
{BuilderFat fat;Director *pDirector = new Director(&fat);pDirector->createPerson();delete pDirector;return 0;
}

转载于:https://www.cnblogs.com/liuweilinlin/p/3203305.html

设计模式之建造者模式(Builder)相关推荐

  1. Android设计模式之建造者模式builder

    今天小编来说一下Android中的一种设计模式--建造者模式Builder 绪论: 那么对于Android初级来说,Builder设计模式可能在我们开发中用过的很少,但是我们可能见过,我们经常用的Al ...

  2. 07、人人都会设计模式:建造者模式--Builder

    PS:转载请注明出处 作者: TigerChain 地址: http://www.jianshu.com/p/300cbb9ee7f2 本文出自 TigerChain 简书 人人都会设计模式 教程简介 ...

  3. C++设计模式之建造者模式(builder)(创建型)

    软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径.设计模式中运用了面向对象编程语言的重要特性:封装.继承.多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累. ...

  4. 一天一个设计模式之建造者模式(Builder)

    建造者模式,属于创建型模式,其目的在于将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 适用情况: • 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时. ...

  5. Python 设计模式之建造者模式 Builder Pattern

    #引入建造者模式 肯德基的菜单上有 薯条, 鸡腿,鸡翅,鸡米花,可乐,橙汁,火腿汉堡,至尊虾汉堡,牛肉汉堡 , 鸡肉卷等这些单品,也有很多套餐. 比如 套餐1:鸡翅,至尊虾汉堡,可乐,薯条 套餐2:鸡 ...

  6. 设计模式之—建造者模式(Builder)-Java实现

    Builder模式,将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部 表象的产品对象.建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节.建造模式可以 ...

  7. UE4 C++设计模式:建造者模式(Builder Pattern)

    目录 描述 套路 使用场景 优缺点 UE4实践 具体复杂产品-门派角色 抽象建造者-角色构造器 具体建造者-纯阳角色构造器 具体建造者-七秀角色构造器 创建指挥者(Director)-角色创建指挥器 ...

  8. 创建型设计模式之建造者模式(Builder)

    结构 意图 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 适用性 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时. 当构造过程必须允许被构造的对象有不 ...

  9. 说说设计模式~建造者模式(Builder)

    建造者模式是我的"设计模式"里创建型模式里的最后一篇,这种模式在实现中,很多架构都用到了,如MVC,MVP,MVVM,它们都是有建造者模式的精髓的,即,创建与表现分享,我们的MVC ...

最新文章

  1. Weblogic禁用SSLv3和RC4算法教程
  2. PHP实现将任意尺寸的图片裁剪后等比缩放到任意尺寸的透明图片上,并实现图片翻转...
  3. 034_jdbc-mysql-C3P0
  4. php怎么读取上传文件的md5,PHP获取上传文件的md5码_PHP教程
  5. AlexNet结构详解(引用MrGiovanni博士)
  6. 使用ImitateLogin模拟登录百度
  7. ubuntu 16.04系统中nvidai、cuda、cudnn安装及注意事项
  8. python中正则表达式中_python 中 正则表达式(Regular Expressions)学习
  9. 【C#】多线程解决UI界面卡死的问题
  10. linux grep (转)
  11. 2019亚马逊差评回复模板,老手惯用的亚马逊差评应对技巧
  12. 首度亮相服贸会,亚马逊云科技如何演绎“大象起舞”?
  13. V4L2编程之USB摄像头采集jpeg图像
  14. 对于女生来说,软件测试和前端,学哪一个更好啊
  15. 知识图谱的相关技术-概览(笔记)
  16. html好看的侧滑效果,H5 - 侧滑效果实现
  17. linux corntab下的关机命令,centos6下定时任务crontab命令的使用 | 雷雨博客
  18. 数据库原理——实验二《数据查询》
  19. mysql没开启binlog恢复删除表_无全量备份、未开启binlog日志,利用percona工具恢复delete的数据...
  20. android 浏览器源码分析,android webview 简单浏览器实现代码

热门文章

  1. CodeForces 931C Laboratory Work 水题,构造
  2. sonyflake.go
  3. g2o求解BA 第10章
  4. Silverlight 5 Features
  5. 解析IP地址与MAC地址
  6. 小数转换成二进制c语言,只写出了十进制小数转换成二进制的,求二进制小数转十进制的...
  7. lettuce 配置域名 dns 切换
  8. java、Android 数组转集合
  9. java控制台输出百分比进度条示例
  10. common lisp 学习第一天 初步接触