设计模式-建造者模式
建造者模式
我们下馆子吃饭的时候,都会发现不同家的做同样的菜味道差别很大,菜味道的不同则就取决于厨子的想法和手法,还有就是厨子做同一个菜品的时候,可能心情不好,做出来的菜也会天差地别。但是再去吃KFC,麦当劳的时候,我们发现味道差不多都一个味,不论在全国各地。因为KFC这种快餐店做食物的一套流程,既保证了效率,又保证了味道基本上一致。这里就用到了我们即将要说的建造者模式。
定义: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以建造不同的表示。
uml图
观察此图我们发现,建造者模式中有这么几个角色:
- Directior:指挥者,根据用户的需求来创建对象,构建一个使用Builder接口的使用对象。
- Builder:建造一个"建筑"各个部分的一个抽象类。
- fatBuilder,thinBuilder:具体的建造者,实现了Builder中的接口。
- Product:为具体的产品角色。
具体实现
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
class Product{
private:
vector<string>parts;
public:
void add(const string part){
parts.push_back(part);
}
void Show() const{