zoukankan      html  css  js  c++  java
  • 设计模式之模板方法模式

    模板方法模式:定义操作中的算法的骨架,而将一些具体的步骤延迟到子类中去。

            模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。

    结构图:

    AbstractClass 是一个抽象类,定义并实现了一个模板方法,该方法一般给出顶级的逻辑骨架,而具体的逻辑组成则在相应的抽象

    操作中。推迟到子类,完成不同的实现。

    模板方法的特点:

    1. 将不变的行为移至父类中,去除子类的重复代码。

    2. 当遇到一系列步骤构成的过程需要执行时,这些步骤从最高层次上来看都是相同的,但是有些步骤的实现可能不同,这时可以考虑使用模板方法模式。

    例子:

    假设在做蛋炒饭时, 我们都是先炒蛋,在炒饭。不对,应该是先放油~

    class MakeEggRice
    {
    public:
        void showEggRice();
        virtaul void addOil();   
        virtual void fireEgg();
        virtual void fireRice();      
    };
    
    class lishifuEggRice
    {
    public:
         virtual void addOil()
         {
            cout << "很多油" << endl;
         }
         virtual void fireEgg()
    {
        cout << "fire 2 eggs" << endl;
    }
    ......
    }
    ~~~~~
  • 相关阅读:
    vue双向数据绑定原理
    vue-router原理
    CSS选择器优化
    静态资源的渲染阻塞
    什么是Base64?Base64的原理是什么?
    OAuth的解释
    AMD与CMD的区别
    AMD的实现
    组件通信的几种方式
    关于istream_iterator<int>(cin)和istream_iterator<int>()的一点分析
  • 原文地址:https://www.cnblogs.com/missmzt/p/5610239.html
Copyright © 2011-2022 走看看