news 2026/6/25 20:07:22

【2013-10-11】设计模式学习笔记:模板模式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【2013-10-11】设计模式学习笔记:模板模式

我没办法发送图片

[历史归档]本文原发布于 cstriker1407.info 个人博客,内容为历史存档,仅供参考。
发布时间:2013-10-11| 标题:设计模式学习笔记:模板模式分类:编程 / 设计模式 / java |标签:设计模式·java·模板模式


设计模式学习笔记:模板模式

    • 备注

模板方法模式(Template Method Pattern)在父类中定义算法骨架,将具体步骤延迟到子类实现,同时通过钩子方法给子类提供可选的扩展点。

示例代码:https://github.com/cstriker1407/design_pattern

模板模式比较简单,直接看代码:

/** * 父类设计成抽象类,供子类继承。 */abstractclassCarModel{// start/stop/alarm 对外不可见,设计为 protectedprotectedabstractvoidstart();protectedabstractvoidstop();protectedabstractvoidalarm();// run 设置为 final,固化算法骨架,防止子类重写publicfinalvoidrun(){start();if(isAlarm()){alarm();}stop();}// 钩子方法:子类可覆写来控制是否触发 alarm,默认为 trueprotectedbooleanisAlarm(){returntrue;}}classACarextendsCarModel{@Overrideprotectedvoidstart(){System.out.println("A Car Start");}@Overrideprotectedvoidstop(){System.out.println("A Car Stop");}@Overrideprotectedvoidalarm(){System.out.println("A Car Alarm");}@OverrideprotectedbooleanisAlarm(){returnfalse;}// A 车不报警}classBCarextendsCarModel{@Overrideprotectedvoidstart(){System.out.println("B Car Start");}@Overrideprotectedvoidstop(){System.out.println("B Car Stop");}@Overrideprotectedvoidalarm(){System.out.println("B Car Alarm");}@OverrideprotectedbooleanisAlarm(){returntrue;}// B 车报警}publicclassTemplateTest{publicstaticvoidtest(){ACaraCar=newACar();aCar.run();BCarbCar=newBCar();bCar.run();}}

备注

模板模式定义后续补充。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/25 20:06:13

阴阳师自动化脚本终极指南:20+智能任务托管解放双手

阴阳师自动化脚本终极指南:20智能任务托管解放双手 【免费下载链接】OnmyojiAutoScript Onmyoji Auto Script | 阴阳师脚本 项目地址: https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript OnmyojiAutoScript(OAS)是一款专为阴阳师玩…

作者头像 李华
网站建设 2026/6/25 20:03:54

PolarDB MySQL版V2.0:100% 兼容 MySQL的国产自研数据库介绍

阿里云PolarDB 数据库管理软件(MySQL 版)V2.0,100% 兼容 MySQL的国产自研数据库。点此查看详情 一、PolarDB MySQL版 V2.0 产品方案介绍 阿里云 PolarDB 数据库管理软件(MySQL 版)V2.0(以下简称 PolarDB …

作者头像 李华
网站建设 2026/6/25 20:02:30

可以和大家分享最初成为创作者的初

机缘 提示:可以和大家分享最初成为创作者的初心 例如: 实战项目中的经验分享日常学习过程中的记录通过文章进行技术交流… 收获 提示:在创作的过程中都有哪些收获 例如: 获得了多少粉丝的关注获得了多少正向的反馈&#xff0c…

作者头像 李华
网站建设 2026/6/25 20:02:06

添加自定义IP后在vitis中编译报错找不到头文件等

问题描述 在Vitis中编辑代码后进行项目编译,编译失败,报错代码为: fatal error: xparameters.h: No such file or directory 原因分析 只有在Vivado中使用自定义IP时才会出现 假设自定义创建一个AXI4 IP核breath_led_ip_1.0(名…

作者头像 李华
网站建设 2026/6/25 20:01:21

在成本敏感型应用中,采用国产DD马达四轴转台替代进口谐波减速转台,其全生命周期的免维护成本和能效表现如何?

在成本敏感型应用中,采用国产DD马达四轴转台替代进口“标准DD马达谐波减速机”组合,不仅能大幅降低初始采购成本,更能在全生命周期免维护成本和能效表现上实现断崖式的优化。具体表现如下: 全生命周期免维护成本:从“高…

作者头像 李华
网站建设 2026/6/25 19:57:26

GeoServer WFS服务CVE-2024-36401漏洞深度剖析与防御实践

1. 项目概述:一次对GeoServer WFS服务深层漏洞的深度剖析最近在梳理开源GIS服务的安全态势时,一个编号为CVE-2024-36401的漏洞引起了我的高度关注。这个漏洞涉及GeoServer的WFS(Web Feature Service)服务,能够导致远程…

作者头像 李华