java设计模式模板模式

Posted code.world

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java设计模式模板模式相关的知识,希望对你有一定的参考价值。

  抽象类中公开定义了执行它的方法的方式,子类可以按需求重写方法实现,但调用将以抽象类中定义的方式进行,典型应用如银行办理业务流程、冲泡饮料流程。下面给出简单例子,用沸水冲泡饮料,分为四步:将水煮沸、泡制饮料、将饮料倒入杯中、加入调味料。

1、模板抽象类

  要点:1)抽象类  2)final修饰的模板方法

public abstract class RefreshTemplate {

    public final void refresh() {
        //将水煮沸
        biolWater();
        //炮制饮料
        brew();
        //将饮料倒入杯中
        pourInCup();
        //加入调味料
        addCondiments();

    }

    private void biolWater() {
        System.out.println("将水煮沸");
    }

    protected abstract void brew();

    private void pourInCup() {
        System.out.println("将饮料倒入杯中");
    }

    protected abstract void addCondiments();

}

2、咖啡类,继承模板类,重写冲泡、加调味料方法

public class Coffee extends RefreshTemplate {
    protected void brew() {
        System.out.println("用沸水冲泡咖啡");
    }

    protected void addCondiments() {
        System.out.println("向咖啡中加入牛奶和糖");
    }
}

3、茶类,继承模板类,重写冲泡、加调味料方法

public class Tea extends RefreshTemplate {
    protected void brew() {
        System.out.println("用开水浸泡5分钟");
    }

    protected void addCondiments() {
        System.out.println("加入柠檬");
    }
}

4、测试

public class Model {

    public static void main(String[] args) {
        //RefreshTemplate refresh = new Coffee();
        RefreshTemplate refresh = new Tea();
        refresh.refresh();
    }

}

利用Java的动态绑定(向上转型),调用父类的final模板方法,保证执行按抽象类定义的方式进行。

以上是关于java设计模式模板模式的主要内容,如果未能解决你的问题,请参考以下文章

JAVA设计模式-模板模式

Java中的模板设计模式,太实用了!

java 之 模板模式(大话设计模式)

大话设计模式-模板方法模式(大鸟和小菜Java版)

java 查看寻呼机设计模式与片段。

《Java设计模式》之模板方法模式