zoukankan      html  css  js  c++  java
  • [设计模式]<2>. C++与生成器模式(Builder pattern)

    原文地址:

    http://www.cnblogs.com/hebaichuanyeah/p/5585957.html

    当构建一个复杂对象时,将构建过程与表示分离。使得同样的过程创建不同的对象。

    简单例子,构建produce类,需要构建三个部分part1,part2,part3。通过build类去构建它们,并返回。通过director 类调用build对象进行配置。

    C++代码

    #include <iostream>
    
    using namespace std;
    
    class Produce
    {
    public:
        Produce(){}
        virtual ~Produce(){}
    
    };
    
    class Builder
    {
    public:
        Builder(){}
        virtual ~Builder(){}
    
        virtual void BuildPart1(){}
        virtual void BuildPart2(){}
        virtual void BuildPart3(){}
        virtual Produce * GetProduce(){}
    
    };
    
    class ProduceBuilder:public Builder
    {
    private:
    Produce * produce;
    public:
        ProduceBuilder(){}
    
        virtual void BuildPart1()
        {
            produce = new Produce();
            cout<<"bulid part1"<<endl;
            //填充构建part1部分
        }
        virtual void BuildPart2()
        {
            cout<<"bulid part2"<<endl;
            //填充构建part2部分
        }
        virtual void BuildPart3()
        {
            cout<<"bulid part3"<<endl;
            //填充构建part3部分
        }
        virtual Produce * GetProduce()
        {
            return produce;
        }
    
    };
    
    class Director
    {
    private:
        Builder * bulider;
    public:
        Director(Builder * builder)
        {
            bulider = builder;
        }
        void construct()
        {
            bulider->BuildPart1();
            bulider->BuildPart2();
            bulider->BuildPart3();
        }
    };
    main()
    {
        Produce * produce;
        Builder * bulider  = new ProduceBuilder();
        Director * myDirector = new Director(bulider);
        myDirector->construct();
        produce = bulider->GetProduce();
    }
  • 相关阅读:
    诸暨集训游记
    P2678 跳石头
    P1577 切绳子
    P1328 生活大爆炸版石头剪刀布
    P1067 多项式输出
    分解因数
    【管理篇】团队组织与架构演进方法论
    【状态机】行为状体机和协议状态机
    【数据库】分库分表
    【OLAP】从数仓到Kappa架构
  • 原文地址:https://www.cnblogs.com/hebaichuanyeah/p/5585957.html
Copyright © 2011-2022 走看看