04 模板模式 Template

模板模式, 我们有一个模板函数在抽象的模板类里, 作为统一的被调用接口. 这个函数里是我们想要执行的步骤, 这样, 外界只要调用这个接口, 就可以完成任务(不用分部调用).

还是已煮茶和煮咖啡为例子.

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.");        
    }
}

猜你喜欢

转载自www.cnblogs.com/moveofgod/p/12509738.html
今日推荐