zoukankan      html  css  js  c++  java
  • 模版方法模式:封装算法 && 迭代器与组合模式:管理良好的集合

    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.迭代器与组合模式:管理良好的集合

  • 相关阅读:
    五、excel末尾补0和开头补0
    MYSQL查询前30条数据
    MYSQL数据库从A表把数据插入B表
    测试用例大全
    EXTJS 5.0 资料
    fs event_socket
    centos 编译swoole
    Valgrind简单用法
    linux 大并发下 内核优化
    FS拓展设置
  • 原文地址:https://www.cnblogs.com/shawshawwan/p/9279469.html
Copyright © 2011-2022 走看看