定义了一个算法的框架,将算法的具体步骤延迟到子类中实现。这样可以在不改变算法结构的情况下,允许子类重写算法的特定步骤以满足自己的需求 模版方法使用场景 算法框架固定,但具体步骤可以变化:当你有一个算法的整体结构是固定的,但其中某些步骤的实现
定义了一个算法的框架,将算法的具体步骤延迟到子类中实现。这样可以在不改变算法结构的情况下,允许子类重写算法的特定步骤以满足自己的需求
abstract class CaffeineBeverage { final void prepareRecipe() { boilWater(); brew(); pourInCup(); addCondiments(); } abstract void brew(); abstract void addCondiments(); void boilWater() { System.out.println("Boiling water"); } void pourInCup() { System.out.println("Pouring into cup"); }}class Coffee extends CaffeineBeverage { void brew() { System.out.println("Dripping coffee through filter"); } void addCondiments() { System.out.println("Adding sugar and milk"); }}class Tea extends CaffeineBeverage { void brew() { System.out.println("Steeping the tea"); } void addCondiments() { System.out.println("Adding lemon"); }}public class TemplateMethodPatternDemo { public static void main(String[] args) { CaffeineBeverage coffee = new Coffee(); coffee.prepareRecipe(); CaffeineBeverage tea = new Tea(); tea.prepareRecipe(); }}
在这个示例中,CaffeineBeverage 是抽象类,定义了制作咖啡因饮料的模板方法 prepareRecipe(),以及具体步骤中的通用方法。Coffee 和 Tea 是具体子类,分别实现了 brew() 和 addCondiments() 方法。在主程序中,我们创建了咖啡和茶的实例,并调用了它们的 prepareRecipe() 方法,实现了整个制作过程
优点:
缺点:
来源地址:https://blog.csdn.net/qq_40537587/article/details/132480725
--结束END--
本文标题: 设计模式二十三:模板方法模式(Template Method Pattern)
本文链接: https://www.lsjlt.com/news/383109.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0