建造者模式能夠將一個產品的內部表象與產品的生成過程分割開來,從而可使一個建造過程生成具備不一樣的內部表象的產品對象。和工廠模式相比,就是我連生產線都提供給你了,還明確了生產的工序。ios
一個是以工廠爲中心,一個是以產品爲中心。ui
下圖是簡單的描述圖spa
#ifndef PRODUCT_Hcode
#define PRODUCT_H
#include "builder.h"
class Product
{
public:
Product(Builder *p_b);
~Product(){delete p;}
void Constructor();
private:
Builder *p;
};
#endif // PRODUCT_H
#include "product.h"對象
Product::Product(Builder *p_b)
{
p = p_b;
}
void Product::Constructor()
{
p->builder_a();
p->builder_b();
}
#include <iostream>產品
using namespace std;
#include "fristbuilder.h"
#include "product.h"
int main()
{
Product p(new FristBuilder);
p.Constructor();
return 0;
}