JAVA 的模板方法模式解析

news/2025/10/10 18:08:43/文章来源:https://www.cnblogs.com/ajunjava/p/19133608

模板方法是什么?

  • 模板方法模式(Template Method Pattern)是一种行为型设计模式。相当于父类定流程,子类补细节。也就是说,父类定义好“做事的流程”(算法骨架),具体每一步怎么做由子类决定。

生活举例

  • 例如你去吃“套餐”:早餐套餐 = 主食 + 饮料,但主食和饮料的内容可以换(包子+豆浆、面包+咖啡)。
  • 这就像模板方法模式:套餐的流程是固定的(父类模板方法)-> 准备主食() + 准备饮料()。然而每家早餐店可以决定细节(子类具体实现),包子店:准备包子 + 豆浆西式店:准备面包 + 咖啡

代码举例

// 抽象父类:定义流程
abstract class Breakfast {// 模板方法:定义算法骨架public final void makeBreakfast() {prepareMain();prepareDrink();System.out.println("早餐准备好了!\n");}// 留给子类实现的步骤protected abstract void prepareMain();protected abstract void prepareDrink();
}// 子类1:包子豆浆店
class ChineseBreakfast extends Breakfast {protected void prepareMain() {System.out.println("准备包子");}protected void prepareDrink() {System.out.println("准备豆浆");}
}// 子类2:西式早餐店
class WesternBreakfast extends Breakfast {protected void prepareMain() {System.out.println("准备面包");}protected void prepareDrink() {System.out.println("准备咖啡");}
}// 测试
public class Main {public static void main(String[] args) {Breakfast chinese = new ChineseBreakfast();Breakfast western = new WesternBreakfast();chinese.makeBreakfast();western.makeBreakfast();}
}

输出结果

准备包子
准备豆浆
早餐准备好了!准备面包
准备咖啡
早餐准备好了!

总结

  • 模板方法模式就是 固定流程 + 灵活步骤。父类规定“框架怎么走”,子类决定“细节怎么做”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/934311.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】Ext系列文件系统(下) - 实践

【Linux】Ext系列文件系统(下) - 实践2025-10-10 18:03 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block …

《构建之法-现代软件工程》 -阅读和提问作业1

1.关于“敏捷迭代”与“应急可靠性”的辩证融合问题 《构建之法》中讲敏捷开发时,反复强调“拥抱变化、快速迭代”的核心思想,这在很多互联网产品开发中确实能快速响应用户需求。但我们应急领域的软件,性质和普通产…

计算机视觉与AI在人体成分分析中的技术突破

本文深入解析了基于计算机视觉和深度学习技术的人体成分分析系统,通过智能手机照片实现体脂率估算和个性化3D建模,涵盖了卷积神经网络、半监督学习等核心技术架构。计算机视觉在人体成分分析中的应用 通过某中心的健…

2024-网鼎杯web-PyBlockly

PyBlockly分析源代码,逐步确定,asd这里就是关键点所在, 但是这里有check_for_blacklisted_symbols对[!"#$%&()*+,-./:;<=>?@[\]^_`{|}~]这些符号进行过滤 但是asd有经过unidecode.unidecode该函数,所以…

关于微信小程序申请地理位置接口申请

注:非实际功能申请 应该是自动审核 例子:因当前业务涉及工作人员外出打卡服务,需获取工作人员所在地理位置以及实时运动轨迹记录工作人员打卡效率及路线,申请接口以便完成工作人员打卡以及投放广告的业务场景的闭环…

c++学习总结

c++学习总结1 引用:相当于变量的第二标签。主要用于传参、函数返回值(只能返回全局变量、局部静态变量的引用)。

2025 年大闸蟹蟹卡 / 大闸蟹礼盒 / 大闸蟹礼券 / 好蟹汇大闸蟹选择指南:生态养殖与全国服务双保障解析

行业背景随着消费升级与健康饮食理念普及,阳澄湖大闸蟹凭借独特口感与品质,成为节庆礼品与家庭餐桌的热门选择。但市场上品牌繁杂,部分产品存在以次充好、养殖环境不达标、售后保障缺失等问题,让消费者在选购蟹卡、…

分享一个超级耐玩的游戏 转载 植物大战僵尸融合版最新版(v3.0.1)支持安卓版+PC电脑版

分享一个超级耐玩的游戏 转载 植物大战僵尸融合版最新版(v3.0.1)支持安卓版+PC电脑版植物大战僵尸融合版最新版(v3.0.1)安卓版+PC电脑版 以下为转载内容 与植物大战僵尸杂交版一样,融合版也是一个第三方修改版,是…

【Go 语言神器】iota 到底是什么?为什么高手都爱用它?

【Go 语言神器】iota 到底是什么?为什么高手都爱用它? 你是不是在看 Go 源码时,经常看到一个奇怪的词 —— iota? 它看起来像个变量,却又不能赋值;像个常量,却会自动变。 今天,我就来给你彻底讲透 iota 的本质…

2025 年模具生产厂家最新推荐榜单:聚焦优质源头企业,助力工程采购精准选型框格梁模具/框格梁模板/混泥土模具厂家推荐

当前国内基础设施建设持续深化,市政、铁路、水利等工程对模具的需求日益增长,但市场上模具厂家数量繁杂,产品质量与服务水平差距显著,部分产品存在强度不足、脱模效果差、适配性低等问题,导致工程返工、工期延误等…

2025 年最新推荐仿石漆厂家实力厂家口碑排行榜:精选优质环保外墙内墙涂料企业权威揭晓

当前建筑涂料市场中,仿石漆因兼具美观与实用特质,成为外墙装饰的主流选择,但市场乱象也让采购方与消费者陷入困境。部分产品性能欠佳,易出现开裂、褪色问题;部分厂家缺乏核心技术,产品同质化严重;还有供应商资质…

oracle查询存储过程和函数中是否包含某个字符串

oracle查询存储过程和函数中是否包含某个字符串select * from all_source where owner=upper(cvs_master) and type=PROCEDURE and text like %9001%;select * from temp_all_views where text like %9001%;

Qoder 负责人揭秘:Qoder 产品背后的思考与未来发展

AI Coding 已经成为软件研发的必选项。根据行业的调研,目前全球超过 62% 的开发者正在使用 AI Coding 产品,开发者研发效率提升 30% 以上。当然,有很多开发者用得比较深入,提效超过 50%。各位开发者,大家上午好,…

2025 年半导体晶片生产厂家最新推荐榜单:专利技术与规模化供货能力双维度深度解析

当前半导体产业正迎来宽禁带材料替代的关键窗口期,碳化硅、氮化镓等材料因适配新能源汽车、光电子、AI 算力设备等高端领域需求,市场规模年增速持续突破 30%。但行业发展仍深陷多重瓶颈:6 寸以下晶圆占比超 70% 导致…

2025 年水产养殖降氨氮亚盐厂家最新推荐排行榜 ,助力北方对虾鱼塘螃蟹池塘养殖户轻松选购优质产品

当前水产养殖行业中,高密度养殖模式普及带来的氨氮、亚硝酸盐超标问题,已成为威胁养殖安全、制约效益提升的核心难题。水体毒素超标不仅会导致鱼虾蟹等水产动物中毒、患病甚至大规模死亡,每年造成的经济损失占行业总…

CS:APP学习笔记之程序的机器级表示(三) - Invinc

本文记录《深入理解计算机系统》第3版中第3章程序的机器级表示的一些知识点。本文记录《深入理解计算机系统》第3版中第3章程序的机器级表示的一些知识点。第3章 程序的机器级表示 程序编码 两种抽象 对于机器级编程来…

EHOME视频平台EasyCVR构建全协议、全场景融合的视频监控中枢

EHOME视频平台EasyCVR构建全协议、全场景融合的视频监控中枢在安防物联网时代,视频资源来源多样、协议繁杂,如何实现统一接入、集中管理与智能应用成为核心挑战。本文将深入解析支持海康EHOME/国标GB28181等主流协议…

GA/T 1400视图库平台EasyCVR平台GB28181与1400级联方式全解析

GA/T 1400视图库平台EasyCVR平台GB28181与1400级联方式全解析在数字化转型的浪潮中,视频监控系统的智能化、网络化已成为安防领域的重要趋势。EasyCVR不仅是一款技术先进的视频监控综合管理系统平台,更是实现视频数据…

2025 年玻璃钢水箱生产厂家最新推荐榜单:含 30 吨 / 订做 / 消防 / 方形 / 拼装式 / 屋顶 / 大型产品,从产能与服务双维度精选优质企业

当前建筑、化工、食品、医药等行业对玻璃钢水箱的需求日益多样,不仅需要 30 吨常规款、消防专用款,还需订做方形、拼装式、屋顶用及大型等特殊类型产品。但市场上厂家数量繁杂,部分企业存在技术落后导致产品质量不稳…

linux 修改本地时区

在Linux系统中,修改本地时区可以通过多种方式实现,下面列举几种常见的方法: 使用timedatectl命令(适用于systemd系统) 对于使用systemd的系统(如最新的Ubuntu、Fedora、CentOS 7及以上版本等),可以使用timedat…