模板模式, 我们有一个模板函数在抽象的模板类里, 作为统一的被调用接口. 这个函数里是我们想要执行的步骤, 这样, 外界只要调用这个接口, 就可以完成任务(不用分部调用).
还是已煮茶和煮咖啡为例子.
package com.leon.design; public class ClientTemplate { public static void main(String[] args) { // 客户想喝茶, 就实例化一个茶 TemplateClass drink = new Tea(); // 制作过程, 客户不用担心, 封装在模板里 drink.doTemplate(); } } package com.leon.design; public abstract class TemplateClass { // 模板函数, 作为唯一的步骤接口提供出去 public final void doTemplate() { boilWater(); addSomething(); } public void boilWater() { System.out.println("boil water..."); } public abstract void addSomething(); } package com.leon.design; public class Tea extends TemplateClass{ @Override public void addSomething() { System.out.println("add salt into tea"); } } package com.leon.design; public class Coffee extends TemplateClass{ @Override public void addSomething() { System.out.println("add sugar into coffee."); } }