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
  • 相关阅读:
    hust 1260 Dominos && hust 1516 Dominos
    poj 1149 PIGS
    hust 1230 beautiful
    poj 1469 COURSES
    hdu 3062 Party
    hust 1027 Enemy Target!
    hdu 3415 Max Sum of Max-K-sub-sequence
    简单的实现轮播代码
    window.parent与window.openner区别介绍
    plupload使用指南(转)
  • 原文地址:https://www.cnblogs.com/yuemw/p/10264385.html
Copyright © 2011-2022 走看看