首页 > 其他 > 详细

设计模式 --> (4)建造者模式

时间:2015-10-31 22:59:04      阅读:238      评论:0      收藏:0      [点我收藏+]

建造者(Builder)模式

  建造者(Builder)模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

  建造者模式包含一个抽象的Builder类,还有它的若干子类——ConcreteBuilder,关键是看指挥官Director,Director里面的方法Construct()其实包含了Builder指针或引用的形参,由客户端传入某个 ConcreateBuilder对象。由多态性可知,客户端传进来的ConcreteBuilder是谁,就调用谁的方法。

具体代码:

// 建造者
class Builder
{
public:
    virtual void buildPart1() = 0;
    virtual void buildPart2() = 0;
};

//具体建造者1
class ConcreteBuilder1: public Builder
{
public:
    void buildPart1() { cout << "用A构造第一部分" << endl; }
    void buildPart2() { cout << "用B构造第二部分" << endl; }
};

//具体建造者2
class ConcreteBuilder2: public Builder
{
public:
    void buildPart1() { cout << "用X构造第一部分" << endl; }
    void buildPart2() { cout << "用Y构造第二部分" << endl; }
};

// 指挥者,注意其方法的参数是抽象建造者的指针
class Director
{
private:  
    Builder *m_pBuilder;  
public:
    Director(Builder *builder) { m_pBuilder = builder; }  
    void build()
    {
        m_pBuilder->buildPart1();
        m_pBuilder->buildPart2();
    }
};

客户使用方法:

int main()
{
    Director d(new ConcreteBuilder1());
    d.build();
    return 0;
}

 

设计模式 --> (4)建造者模式

原文:http://www.cnblogs.com/jeakeven/p/4926318.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!