您的位置:首页 > 新闻 > 热点要闻 > Java学习笔记整理: 关于设计模式:模板方法模式 2024/7/10;

Java学习笔记整理: 关于设计模式:模板方法模式 2024/7/10;

2025/6/9 15:48:15 来源:https://blog.csdn.net/gzx233/article/details/140333648  浏览:    关键词:Java学习笔记整理: 关于设计模式:模板方法模式 2024/7/10;
模板方法模式

自理解:通过指定流程创建模板类并写入指定方法和抽象方法要求子类重写,然后创建类继承该模板类进行统一操作;

优点

1、封装不变部分,扩展可变部分。

2、提取公共代码,便于维护。

3、行为由父类控制,子类实现。

缺点

每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统更加庞大。

使用场景:

1、有多个子类共有的方法,且逻辑相同

2、重要的、复杂的方法,可以考虑作为模板方法。

注意事项:为防止恶意操作,一般模板方法都加上 final 关键词。

行为型模式
概述

在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。

意图

定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定功能。

案例:::
/*
*分析:1.取材 2.处理食材 3.起锅烧油 4.放入食材 5.翻炒 6.放入各种调料 7.翻炒均匀 8.出锅
*/
//定义公共模板类
public abstract class ChaoCai {//不能被子类重写public final void chaocai(){quShiCai();handle();qiGuoShaoYou();putShiCai();fanChao();putTiaoLiao();junYun();outGuo();}
​//1.取食材void quShiCai(){};//2.处理食材void handle(){};//3.起锅烧油void qiGuoShaoYou(){};//4.放入食材void putShiCai(){};//5.翻炒void fanChao(){};//6.放入各种调料void putTiaoLiao(){};//7.翻炒均匀void junYun(){};//8.出锅void outGuo(){};
}
//继承公共模板
public class FanQieChaoDan extends ChaoCai{
​@Overridevoid quShiCai() {System.out.println("取鸡蛋和番茄");}
​@Overridevoid handle() {System.out.println("处理鸡蛋和番茄");}
​@Overridevoid qiGuoShaoYou() {System.out.println("起锅烧油");}
​@Overridevoid putShiCai() {System.out.println("翻入鸡蛋和番茄");}
​@Overridevoid fanChao() {System.out.println("翻炒");}
​@Overridevoid putTiaoLiao() {System.out.println("翻入调料");}
​@Overridevoid junYun() {System.out.println("翻炒均匀");}
​@Overridevoid outGuo() {System.out.println("出锅!");}
}
//测试
public class ChaoCaiTest {
​public static void main(String[] args) {FanQieChaoDan fanQieChaoDan = new FanQieChaoDan();fanQieChaoDan.chaocai();}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com