设计模式---模板方法模式

devtools/2024/11/14 12:48:09/

一、介绍

        所谓模板方法模式,就是提供一种方法的模板来实现一种规范,其他人可以利用这个模板定义自己的逻辑。

        在Java编程中的应用,主要就是通过接口或者抽象类来实现的,抽象类中可以把逻辑函数声明为final类型,表示不能被重写,即不能改变逻辑。在接口中定义一个模板方法,模板方法中调用接口中的其他方法,其他方法既可以提供默认实现,也可以不提供默认实现。当一个类实现这个接口的时候,就可以通过重写接口中的方法来实现自己的变成逻辑。

二、代码实例

        接口:

package code;public interface myFirst {default void templete(){if(isTrue()){//如果判断成立,就执行逻辑1fun1();}fun2();fun3();}default void fun1(){System.out.println("逻辑1执行");}default void fun2(){System.out.println("逻辑2执行");}default void fun3(){System.out.println("逻辑3执行");}default boolean isTrue(){return true;//默认为true}
}
package code;public class myClass implements myFirst{@Overridepublic void fun1() {System.out.println("我自己的实现1");}@Overridepublic void fun2() {System.out.println("我自己的实现2");}@Overridepublic void fun3() {System.out.println("我自己的实现3");}@Overridepublic boolean isTrue() {return true;}
}

http://www.ppmy.cn/devtools/5276.html

相关文章

阿里云云效CI/CD配置

1.NODEJS项目流水线配置(vue举例) nodejs构建配置 官方教程 注意:下图的dist是vue项目打包目录名称,根据实际名称配置 # input your command here cnpm cache clean --force cnpm install cnpm run build 主机部署配置 rm -rf /home/vipcardmall/frontend/ mkdir -p /home/…

简单的LRU本地缓存实现-Java版本

文章目录 什么是缓存缓存的种类缓存的关键特性缓存的优势与挑战优势:挑战: 缓存的应用场景什么是LRUCacheLRU 缓存的工作原理核心操作为何选择 LRU使用场景 一个简单的LRU缓存实现相关资料基础资料 什么是缓存 缓存(Cache)是一种…

python将pdf转为docx

如何使用python实现将pdf文件转为docx文件 1.首先要安装pdf2docx库 pip install pdf2docx2.实现转换 from pdf2docx import Converterdef convert_pdf_to_docx(input_pdf, output_docx):# 创建一个PDF转换器对象pdf_converter Converter(input_pdf)# 将PDF转换为docx文件pdf…

STL--list双向链表

功能 将数据进行链式存储 链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的 链表的组成:链表由一系列结点组成 结点的组成:一个是存储数据元素的数据域&#xff0…

Vue3不用任何构建的原始HTML

Vue3不用任何构建的原始HTML 导入vue.global.js&#xff0c;完成Hello vue!的显示 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge">…

点击按钮出现两次弹窗

事件监听器被绑定了两次&#xff1a;如果不小心为同一个按钮绑定了两次相同的事件监听器&#xff0c;那么点击按钮时&#xff0c;每个监听器都会触发一次弹窗&#xff0c;从而导致弹窗出现两次。 HTML 结构&#xff1a;检查HTML 结构是否正确&#xff0c;没有重复的按钮或者误…

【小迪安全2023】第30天:WEB攻防-通用漏洞SQL注入CTF二次堆善DNS带外

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

C++ 引用

C新增了一种复合类型--引用。引用是已定义的变量的别名。例如将data作为value的引用(别名),则可以随意使用data或value来表示该变量。 引用有何作用呢? 其主要作用是作为函数的形参(和函数的返回值)。这样函数的形参就是实参本身,而不是其副本。这样除指针外,引用也为函数处理…