Java学习——模板设计模式——抽象类的实际应用

本文介绍了模板设计模式的概念,强调了其解耦的精髓。通过举例说明星巴克咖啡和茶的冲泡过程,展示了如何使用抽象类来定义算法骨架,并将不同步骤的实现留给子类。文章还探讨了模板方法的优缺点,并提供了代码示例来阐述如何在Java中实现模板设计模式,包括钩子方法的作用。
摘要由CSDN通过智能技术生成

设计模式的精髓:解耦。而模板设计模式是通过第三方进行解耦

什么是内聚、解耦大家可以看一下博主 小异常 的博文:https://blog.csdn.net/sun8112133/article/details/81040275

模板设计模式:(基于抽象类)在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类再不改变算法的前提下,重新定义算法中的某些步骤。

通俗点的理解就是 :完成一件事情,有固定的数个步骤,但是每个步骤根据对象的不同,而实现细节不同;就可以在父类中定义一个完成该事情的总方法,按照完成事件需要的步骤去调用其每个步骤的实现方法。每个步骤的具体实现,由子类完成。

一个经典的模板设计模式的例子

星巴克咖啡冲泡法

1. 将水煮沸
2. 用沸水冲泡咖啡
3. 将咖啡倒进杯子
4. 加糖和牛奶

星巴克茶冲泡法

1. 将水煮沸
2. 用沸水浸泡茶叶
3. 把茶倒进杯子
4. 加柠檬

用代码简单实现就是

class Coffee{
    void prepareRecipe(){
        boilWater();
        brewCoffeeGrings();
        pourInCap();
        addSugarAndMilk();
    }
    public void boilWater(){
        System.out.println("将水煮沸");
    }
    public void brewCoffeeGrings(){
        System.out.println("冲泡咖啡");
    }
    public void pourInCap(){
        System.out.println("将咖啡倒进杯子");
    }
    public void addSugarAndMilk(){
        System.out.println("加入糖和牛奶");
    }
}
class Tea {
    void prepareRecipe() {
    boilWater();
    steepTea
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值