二、java设计模式之模板模式深进浅出

版权声明:转载请注明出处 https://blog.csdn.net/chenmingxu438521/article/details/89441591

一、背景

模板模式具体怎么使用,下面我会详细讲,如果有那个地方讲的不到位了,请大家多多指教,共同学习,我尽量以白话的形式进行展示,废话不多说了,下面开始。

二、spring中的使用

springJDBC是Java规范,各个数据库厂商自己去实现
1.加载驱动类DriverManager
2.建立连接
3.创建语句集(标准语句集合、预处理语句集)
4.执行语句集
5.结果集ResultSet 游标

三、场景分析

1.比如喝茶过程实际上是比较麻烦的,机器就产生了,饮料冲泡机。
1.1、烧开水
1.2、准备一个杯子,把原料放入到杯子中(放啥?)
1.3、用水冲泡
1.4、添加辅料(放啥?)
(固定的执行流程,就叫模板)

四、具体代码实例

1.定义模板

//冲饮料机器
public abstract class Bevegrage {
    //不能被重写的,因为模板流程是不可变的,不能被重写
    public final void create(){
        //1.把水烧开
        boilWater();
        //2.把杯子准备好、原材料放到杯子中
        pourInCup();
        //3.用水冲泡
        brew();
        //4.添加辅料
        addCoundiments();
    }

    protected abstract void addCoundiments();

    private void brew() {
        System.out.println("将开水放入杯中");
    }

    //只要有一个抽象方法的时,我们的类都得是抽象类
    protected abstract void pourInCup();

    public void boilWater() {
        System.out.println("烧开水,烧到100度,可以起锅了");
    }
}

2.冲coffee例子

public class Coffee extends Bevegrage {
    //原料放入杯中
    protected void addCoundiments() {
        System.out.println("将咖啡倒入杯中");
    }

    //放辅料
    protected void pourInCup() {
        System.out.println("添加牛奶和糖");
    }
}

3.冲tea例子

public class Tea extends Bevegrage {
    //放原料
    protected void addCoundiments() {
        System.out.println("将茶叶放进去");
    }

    //放辅料
    protected void pourInCup() {
        System.out.println("放蜂蜜");
    }
}

五、测试类

public class TestTemplate {
    public static void main(String[] args) {
        Coffee coffee = new Coffee();
        coffee.create();
        System.out.println("-------------华丽的分割线-------------");
        Tea tea = new Tea();
        tea.create();
    }
}

六、结果

烧开水,烧到100度,可以起锅了
添加牛奶和糖
将开水放入杯中
将咖啡倒入杯中
-------------华丽的分割线-------------
烧开水,烧到100度,可以起锅了
放蜂蜜
将开水放入杯中
将茶叶放进去

七、结束

上面简单的举例子,就是对模板模式的分析。也希望读到这个博客的有缘人提供宝贵的意见。

猜你喜欢

转载自blog.csdn.net/chenmingxu438521/article/details/89441591