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

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

原文地址:https://www.cnblogs.com/shawshawwan/p/9279469.html