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

模板方法设计模式

模板方法设计模式:

模板方法设计模式:解决方法中存在重复代码的问题。

 
 

模板方法设计模式的写法

1、定义一个抽象类

2、在里面定义2个方法

​ 一个是模板方法:把相同代码放里面去

​ 一个是抽象方法:具体实现交给子类完成

建议使用final关键字修饰模板方法:

​ 模板方法是给对象直接使用的,不能被子类重写。

​ 一旦子类重写了模板方法,模板方法就失效了。

package com.ouyang.demo05;public abstract class Singer {//模板方法,存放多个子类方法中的相同代码//final防止模板方法被子类重写public final void sing(){System.out.println("上台");System.out.println("打开话筒");//同子类唱的歌词不一样,搞一个抽象方法,让子类重写doSing();System.out.println("关闭话筒");System.out.println("鞠躬");}public abstract void doSing();}

 

public class DaoLang extends Singer{@Overridepublic void doSing() {System.out.println("刀郎唱2002年的第一场雪!");}
}class Cxk extends Singer{@Overridepublic void doSing() {System.out.println("蔡徐坤唱明天会更好!");}
}

 

package com.ouyang.demo05;public class demo {public static void main(String[] args) {/*上台打开话筒蔡徐坤唱明天会更好!关闭话筒鞠躬--------------上台打开话筒刀郎唱2002年的第一场雪!关闭话筒鞠躬
*/Singer cxk=new Cxk();cxk.sing();System.out.println("--------------");Singer dl=new DaoLang();dl.sing();}
}
http://www.lryc.cn/news/402734.html

相关文章:

  • 对象存储解决方案:高性能分布式对象存储系统MinIO
  • 2024 年需要考虑的 16 个知识库趋势和统计数据
  • 微信小程序-实现跳转链接并拼接参数(URL拼接路径参数)
  • 【代码随想录|第十一章 图论part01 | 797.所有可能的路径 】
  • 尚硅谷大数据技术-数据湖Hudi视频教程-笔记03【Hudi集成Spark】
  • 【python】Pandas中IndexError: single positional indexer is out of bounds的报错分析
  • ubuntu上通过修改grub启动参数,将串口重定向到sol
  • 【Git】(基础篇四)—— GitHub使用
  • 【Qt+opencv】基础的图像绘制
  • 使用Nginx OpenResty与Redis实现高效IP黑白名单管理
  • EasyExcel导入导出数据类型转换
  • stm32入门-----EXTI外部中断(下——实践篇)
  • 深度学习落地实战:基于UNet实现血管瘤超声图像分割
  • Python进阶(4)--正则表达式
  • RCA连接器是什么?一文读懂
  • 【linux】服务器安装NVIDIA驱动
  • 【达梦数据库】关于用户、模式、表空间等如何理解?
  • 一篇就够mysql高阶知识总结
  • CTF-Web习题:[BJDCTF2020]ZJCTF,不过如此
  • 【IEEE出版】第四届能源工程与电力系统国际学术会议(EEPS 2024)
  • 浅谈Vue:text-align: center、align-items: center、justify-content: center三种居中的区别和用法
  • 理解UI设计:UI设计师的未来发展机遇
  • 关键字 internal
  • C学习(数据结构)-->单链表习题
  • MATLAB6:M文件和控制流
  • 网页数据抓取:融合BeautifulSoup和Scrapy的高级爬虫技术
  • Linux应用——网络基础
  • 白骑士的C++教学实战项目篇 4.3 多线程网络服务器
  • Go语言并发编程-Context上下文
  • React@16.x(62)Redux@4.x(11)- 中间件2 - redux-thunk