zoukankan      html  css  js  c++  java
  • 设计模式学习Builder(生成器

    builder意图:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示

    示意图:

    image

    适用性:

    当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时

    当构造过程必须允许被构造的对象有不同的表示时

    示例代码:

    //部件类
    class CPart
    {
    public:
        CPart(void);
    public:
        ~CPart(void);
    public:
        virtual void Build()=0;
        virtual void Display()=0;
    };
    //部件A
    class CPartA:public CPart
    {
    public:
        CPartA()
        {

        }
    public:
        ~CPartA()
        {

        }
    public:
        virtual void Display()
        {
            _tprintf(_T("PartA/n"));
        }
       
        virtual void Build()
        {
            _tprintf(_T("Build PartA/n"));   
        }
    };
    //部件B
    class CPartB:public CPart
    {
    public:
        CPartB()
        {

        }
    public:
        ~CPartB()
        {

        }
    public:
        virtual void Display()
        {
            _tprintf(_T("PartB/n"));
        }
       
        virtual void Build()
        {
            _tprintf(_T("Build PartB/n"));   
        }
    };

  • 相关阅读:
    [atARC100F]Colorful Sequences
    [atARC103D]Robot Arms
    [atARC107F]Sum of Abs
    [atAGC047F]Rooks
    [loj3278]收获
    [cf809E]Surprise me
    [cf997E]Good Subsegments
    [cf603E]Pastoral Oddities
    Codeforces Round #453
    Educational Codeforces Round 32
  • 原文地址:https://www.cnblogs.com/SkyMouse/p/2340735.html
Copyright © 2011-2022 走看看