文章目录
前言
今天复习了下建造者模式,感觉这是一个比较常用的设计模式,有可能你在编程时无意识就用到了这个设计模式思想。
1. 建造者模式理解
建造者模式,个人理解,就是对通用处理过程的一种抽象,然后由统一的领导按照过程一步步执行,类似流水线工作,比如汽车的生产组装过程,先做什么后做什么都是固定的,但是不同汽车类型在不同过程中需要的零件可能不同,这就是《大话设计模式》中提到的过程与具体表示分离,具体表示被封装到具体建造者类中,它们继承自抽象建造者类,然后由指挥者来指挥建造过程的执行。
建造者模式比较正规定义及类图如下所示(引用《大话设计模式》):
2. C++实现建造者模式
这里以绘制小人为例,实现建造者模式代码。
绘制小人类图(引用《大话设计模式》)如下:
源码如下:
#include <iostream>
#include <memory>
//********************Builder Pattern******************
class PersonBuilder
{
public:
virtual void BuildHead() = 0;
virtual void BuildBody() = 0;
virtual void BuildArmLeft() = 0;
virtual void BuildArmRight() = 0;
virtual void BuildLegLeft() = 0;
virtual void BuildLegRight() = 0;
};
class PersonThinBuilder