zoukankan      html  css  js  c++  java
  • 模板模式

    一、简介

      模板设计模式的设计思路比较简单,核心是将不变的逻辑放在基类中处理,在子类中使用虚函数实现变动的方法。它是开发人员使用很频繁的一种模式,往往在代码重构提取基类的过程中就会使用到这种设计模式的思路。

    1. 模板设计模式类图

      如上图,抽象父类用于实现软件功能中的算法的框架,子类差异化的实现算法流程中的某个具体的细节。

    三、代码示例

      在组装电脑的过程中,我们可以发现,尽管不同的人需要不同类型的电脑,但是,我们的整体流程是不会改变的,简化一下,可以分为以下三个步骤:

      1)按照需求采购配件;

      2)组装电脑配件;

      3)调试测试组装好的电脑。

    以下为示例代码:

    #ifndef TemplateMethod_h
    #define TemplateMethod_h
    
    class BaseComputeAssy
    {
    public:
        explicit BaseComputeAssy();
        virtual ~BaseComputeAssy() {};
    
        void            init()
        {
            purchase();
            assembly();
            test();
        };
    
    protected:
        virtual            purchase() {};
    
    private:
        void            assembly();
        void            test();
    };
    
    class GameComputeAssy : public BaseComputeAssy
    {
    public:
        GameComputeAssy();
        virtual ~GameComputeAssy() {};
    
    protected:
        virtual            purchase()
        {
            //todo
        };
    };
    
    class WorkComputeAssy : BaseComputeAssy
    {
    public:
        WorkComputeAssy();
        virtual ~WorkComputeAssy() {};
    
    protected:
        virtual            purchase()
        {
            //todo 
        }
    };
    #endif // !TemplateMathod_h
  • 相关阅读:
    NOIp199Cantor表
    NOIP2001数的计算
    NOIP2010排队接水
    普及组2006第三题jam的计数法
    2013提高组积木大赛
    洛谷1223排队接水
    9.3noip模拟赛第一题卡片
    2002普及组第四题过河卒
    细胞分裂(NOIP2009 普及组第三题)
    道路游戏(NOIP2009 普及组第四题)
  • 原文地址:https://www.cnblogs.com/yuemw/p/10264385.html
Copyright © 2011-2022 走看看