• 模版方法模式:封装算法 && 迭代器与组合模式:管理良好的集合


    1. 模版方法模式:将多个对象相同的算法抽象,泛化出来,形成超类,由这个超类维护相同的算法骨架,而子类实现具体的算法。

    一个简单的例子: 

    package src.TemplateMethod;
    
    /**
     * 模版方法:封装算法
     * 模版方法在一个方法中定义了算法的骨架,而将一些步骤延迟到子类中去具体完成。
     * 模版方法使得子类在不改变算法结构的情况下,重新定义算法中的某些步骤。
     */
    
    public abstract class CaffeineBeverage {
        final void prepareRecipe() {
            boilWater();
            brew();
            pourInCup();
            addCondiments();
            return;
        }
        void boilWater() {
            System.out.println("boiling water!");
        }
        void pourInCup() {
            System.out.println("pour into cup!");
        }
        abstract void brew();
        abstract void addCondiments();
    }
    
    
    public class Tea extends CaffeineBeverage {
        @Override
        void brew() {
            System.out.println("Steeping the tea");
        }
    
        @Override
        void addCondiments() {
            System.out.println("Adding Lemon");
        }
    }
    
    
    public class Coffee extends CaffeineBeverage {
        @Override
        void brew() {
            System.out.println("Dripping the coffee through filter");
        }
    
        @Override
        void addCondiments() {
            System.out.println("Adding sugar and milk");
        }
    }

    模版方法模式在很多框架中都很常见:由框架去控制如何做事情,而由你(框架的使用者)去指定框架算法中的每个步骤的细节。

    2.迭代器与组合模式:管理良好的集合

  • 相关阅读:
    element 树形控件使用
    js粘贴图片并显示
    vue-element Tree树形控件通过id默认选中
    解决win10shift+右键显示在此处打开powershell而不是命令窗口的问题
    maven安装与配置
    解决dos窗口中文乱码问题
    vue单页面应用刷新网页后vuex的state数据丢失的解决方案
    vue 单个倒计时组件
    js将秒转换为时分秒
    vue3.0用vue-awesome-swiper
  • 原文地址:https://www.cnblogs.com/shawshawwan/p/9279469.html
Copyright © 2020-2023  润新知