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

ops/2024/9/24 0:19:21/

一、介绍

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

        在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/ops/5996.html

相关文章

PyTorch深度解析:Tensor——神经网络的核心构建块

在深度学习和神经网络的研究与应用中,Tensor(张量)无疑是一个核心概念。特别是在PyTorch这一强大的深度学习框架中,Tensor更是扮演了举足轻重的角色。本文将深入探讨PyTorch中的Tensor,从其基本定义、特性、操作到实际…

CSS3 新特性

文章目录 选择器圆角效果 - border-radius阴影效果 - box-shadow渐变效果 - linear-gradient()形变效果 - transform过渡效果 - transition动画效果 - animation媒体查询 - media弹性盒子布局 - flex网格布局 - grid背景效果1. 多背景图2. 背景裁剪3. 透明效果 CSS3中引入了许多…

react 项目路由配置(react-router-dom 版本 v6.3、v6.4)

根据 react-router-dom 的版本,有不同的方式 一、react-router-dom v6.3 用到的主要 api: BrowserRouteruseRoutesOutlet 下面是详细步骤: 1、index.js BrowserRouter 用来实现 单页的客户端路由使用 BrowserRouter 包裹 App放在 顶级 位置&#x…

iOS重签名-超详细,附排错

文章目录 重签名步骤步骤 1: 准备必要的材料步骤 2: 解压 .ipa 文件步骤3:将 Provisioning Profile 复制到 Payload 目录步骤 4: 移除原来的签名步骤 5: 使用新的证书和 Provisioning Profile 进行重签名步骤 6: 重新打包 .ipa 文件步骤 7: 安装和测试得到provisioning file和…

【Python图像处理篇】opencv中的去畸变

去畸变 opencv opencv-python光学畸变校准 使用pythonopencv进行图像的去畸变 使用pythonopencv进行图像的去畸变 关于OpenCV中的去畸变 为什么相机参数每次标定的结果都不一样(原理分析)

Redis从入门到精通(十九)多级缓存(四)Nginx共享字典实现本地缓存

文章目录 前言6.5 实现多级缓存6.5.6 Nginx本地缓存6.5.6.1 代码实现6.5.6.2 功能测试 6.6 缓存同步6.6.1 缓存同步策略6.6.2 异步通知策略 前言 Redis多级缓存系列文章: Redis从入门到精通(十六)多级缓存(一)Caffeine、JVM进程缓存 Redis从入门到精通(十七)多级缓…

c++:vector的模拟实现和底层

文章目录 注意事项初始化成员变量迭代器sizecapacity构造无参构造迭代器区间构造构造n个值为val的vector用{1,2,3,4}数组进行构造 operator拷贝构造析构operator[]push_backpop_backinserteraseemptyreserveresizeswap遍历的三种方式 注意事项 注意在传参和返回值时,能用引用返…

Vue 指令、计算属性、侦听器

目录 指令 指令修饰符 按键修饰符 ​编辑 v-model修饰符 事件修饰符 v-bind对于样式操作的增强 操作class 对象 数组 操作style v-model应用于其他表单元素 computed计算属性 概念 基础语法 ​编辑 计算属性vs方法 computed计算属性 作用 语法 缓存特性 m…