当前位置: 首页 > news >正文

设计模式之模版方法(TemplateMethod)

模版方法 钩子函数 回调函数

在父类里面有一个模版方法,在这个方法里面调用了op1,op2,op3… 在子类里面如果想要改变父类的op1和op2
只需要重写op1和op2,那么这个重写之后的方法,可以在父类里面直接调用的到

例子:
Java AWT里面的Frame类 --> 有setVible方法 --> 自动会调用update和paint方法
Frame的子类只需要实现update和paint方法,重写的方法在父类里面能直接调用的到
在这里插入图片描述

public class Main {public static void main(String[] args) {F f = new C1();// 调用模版方法,子类实现的op1和op2被自动调用f.m();}}abstract class F {// 模版方法,调用了op1和op2public void m() {op1();op2();}// 留给子类去实现abstract void op1();abstract void op2();
}// 子类实现父类里面的方法
class C1 extends F {@Overridevoid op1() {System.out.println("op1");}@Overridevoid op2() {System.out.println("op2");}
}

相关文章:

  • Spring Boot 整合xxl-job实现分布式定时任务
  • STM32GPIO——上拉、下拉电阻
  • uniapp在IOS手机下解决时间nan-an-nan问题
  • MYSQL迁移到人大金仓后的适配问题汇总
  • Facebook个人主页和公共主页的区别
  • 新型的铁塔基站“能源管家”
  • @KafkaListener注解详解(一)| 常用参数详解
  • “谐波”分析治理,电能质量在线监测
  • ‘XXX‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 系统找不到指定的路径。
  • PO设计模式详解(Python+selenium+unittest)
  • graylog日志分析配置(1)
  • 接口自动化测试操作流程
  • OpenCV中更稳更快的边缘检测方法,快速查找线、圆、椭圆--EdgeDrawing-C++代码
  • 【深度学习环境】windows安装 NVIDIA Docker
  • 【python】9个python进阶技巧(实用)
  • ES6 学习笔记(一)let,const和解构赋值
  • HTTP那些事
  • Java 最常见的 200+ 面试题:面试必备
  • October CMS - 快速入门 9 Images And Galleries
  • opencv python Meanshift 和 Camshift
  • vue的全局变量和全局拦截请求器
  • 阿里研究院入选中国企业智库系统影响力榜
  • 第十八天-企业应用架构模式-基本模式
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 每天10道Java面试题,跟我走,offer有!
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 小李飞刀:SQL题目刷起来!
  • 异常机制详解
  • 原生 js 实现移动端 Touch 滑动反弹
  • 正则表达式
  • 《码出高效》学习笔记与书中错误记录
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 函数计算新功能-----支持C#函数
  • #Linux(Source Insight安装及工程建立)
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .net MVC中使用angularJs刷新页面数据列表
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • /boot 内存空间不够
  • @RequestParam,@RequestBody和@PathVariable 区别
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • @Valid和@NotNull字段校验使用
  • []利用定点式具实现:文件读取,完成不同进制之间的
  • [20160902]rm -rf的惨案.txt
  • [BZOJ1877][SDOI2009]晨跑[最大流+费用流]
  • [C/C++]数据结构 栈和队列()
  • [CareerCup][Google Interview] 实现一个具有get_min的Queue
  • [Contiki系列论文之2]WSN的自适应通信架构
  • [Jenkins] Docker 安装Jenkins及迁移流程