Java设计模式 ----- 模板设计模式

模板模式是一种设计模式,它通过定义一个模板(结构、框架),在子类中填充具体细节。该模式在Java中常用于实现固定流程但步骤可变的场景。例如,泡茶和煮咖啡的过程,大部分步骤相同,只有个别步骤(如加调料)根据个人口味不同。模板模式将共性逻辑放在抽象基类,抽象部分由子类实现。通过类图和代码示例展示了模板模式的实现,包括钩子函数用于处理个性化需求。
摘要由CSDN通过智能技术生成

 

     模板模式便是通过定义一个模板(结构、框架、原型),在之后的工作便是对其进行充实、完善实际所需。 

     模板采用抽象类来定义,公共的结构化逻辑需要在抽象基类中定义,只将非公共类的部分逻辑抽象成方法,留在子类充实实现。

    

     用生活中的两个例子来说:泡茶和煮咖啡。

            泡茶步骤:1.将水煮沸 2.浸泡茶包 3.将茶倒入杯中 4.加柠檬

            煮咖啡步骤:1.将水煮沸 2.冲泡咖啡 3.将咖啡倒入杯中 4.加糖和牛奶

    

     从上面步骤可以看出无论是泡茶还是煮咖啡过程都是大致相似的,甚至1、2步骤是完全相同的,而3、4步骤只是冲泡和加入的调料有所不同,所以根据模板模式的定义,将1、2相同的这两部分放在超类中,可以被两个子类所共用,将步骤3、4声明为抽象方法,留给子类充实。回过头来我们仔细想想既然整个过程大致相似,只是放入的原料以及加入的辅料不同,则我们亦可以将整个过程抽象化。

     其类图如下:

 

代码如下:

     实现抽象基类,为所有子类提供模板

import java.util.Scanner;
abstract class CaffeineBeverage{
	
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值