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

一、背景

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

二、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度,可以起锅了
放蜂蜜
将开水放入杯中
将茶叶放进去

七、结束

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值