黄石网站建设上海 网站建设

福建省南平市蓝桥钻石工具制造有限公司 2026/09/09 18:57:58

模板方法模式(Template Method)

模板方法模式将算法流程与算法具体实现相分离的结构.
首先, 定义一个抽象类, 抽象类中有一个不可重写的final方法, 这个方法中封装核心的算法流程, 但这个流程中只有方法调用, 没有具体实现.
具体的方法实现由子类完成, 一些方法是抽象方法, 子类必须实现, 另一些方法则是钩子方法, 子类选择性实现.
代码示例:

// 模板方法类, 只定义核心逻辑, 提供算法框架, 不进行具体实现abstractclassHero{// 这个createHero方法中定义固定的逻辑, 所有子类都遵循这里的顺序// 有些方法子类必须实现, 也有部分钩子方法子类可选择性实现publicfinalvoidcreateHero(){try{System.out.print("身形: ");createBody();System.out.print("肌肉: ");if(createMuscles()){System.out.println(" 身形健硕, 极其勇猛");}else{System.out.println("无");}System.out.print("武器: ");if(createWeapon()){System.out.println(" 真理面前, 众生平等");}else{System.out.println("没有武器");}System.out.print("技能: ");createSkill();System.out.print("头戴: ");createHat();System.out.print("名号: ");sayName();}catch(Exceptione){System.out.println("[Exception] "+e.getMessage());}}abstractvoidcreateHat();abstractvoidcreateSkill();abstractvoidcreateBody();// 钩子方法booleancreateMuscles(){returnfalse;}booleancreateWeapon(){returnfalse;}abstractvoidsayName();}classZhangFeiextendsHero{@OverridevoidcreateHat(){System.out.println("黑帅盔");}@OverridevoidcreateBody(){System.out.println("身高七尺,皮肤黝黑");}@OverridevoidcreateSkill(){System.out.println("声如洪钟, 骁勇善战");}@OverridevoidsayName(){System.out.println("燕人张飞张翼德");}@OverridebooleancreateMuscles(){System.out.println("肌肉发达, 耐力非比寻常");returntrue;}@OverridebooleancreateWeapon(){System.out.println("丈八蛇矛");returntrue;}}classLvBuextendsHero{@OverridevoidcreateHat(){System.out.println("紫金冠");}@OverridevoidcreateBody(){System.out.println("身高八尺,英俊无比");}@OverridevoidcreateSkill(){System.out.println("辕门射戟神技, 战力非凡");}@OverridevoidsayName(){System.out.println("九原吕布吕奉先");}@OverridebooleancreateMuscles(){System.out.println("肌肉结实,身材魁梧");returntrue;}@OverridebooleancreateWeapon(){System.out.println("方天画戟");returntrue;}}

调用及执行:

publicclassTemplateMethodPattern{publicstaticvoidmain(String[]args){ZhangFeizhangfei=newZhangFei();zhangfei.createHero();System.out.println("=================");LvBulvbu=newLvBu();lvbu.createHero();}}

执行结果:

身形: 身高七尺,皮肤黝黑 肌肉: 肌肉发达, 耐力非比寻常 身形健硕, 极其勇猛 武器: 丈八蛇矛 真理面前, 众生平等 技能: 声如洪钟, 骁勇善战 头戴: 黑帅盔 名号: 燕人张飞张翼德 ================= 身形: 身高八尺,英俊无比 肌肉: 肌肉结实,身材魁梧 身形健硕, 极其勇猛 武器: 方天画戟 真理面前, 众生平等 技能: 辕门射戟神技, 战力非凡 头戴: 紫金冠 名号: 九原吕布吕奉先

模板方法能够让子类只实现算法的局部功能, 而不是去实现整个算法结构, 在实际开发中有效分离算法与实现.
在思考一个算法时, 考虑有哪些共同的步骤是在各种情况中反复出现的, 把他们都分步抽出来,
然后各种情况的实现类去实现这些有差异的部分

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

诸城网站建设马鞍山网站建设

智能家居DIY:用RAM模型给你的家装上"眼睛"想让你的智能家居系统像人类一样识别家庭成员和日常物品吗?RAM(Recognize Anyth

2026/06/30 10:30:20

龙岗网站建设公司静安网站建设

Google Chronicle:超大规模日志分析如何重塑现代威胁检测在当今的数字战场中,攻击者早已不再依赖一次性的暴力入侵。他们潜伏、侦察、横向移动,像外科

2026/06/30 11:38:56

宁波网站建设深圳网站建设论坛

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(

2026/06/30 10:49:22

山西网站建设网站建设 重庆

网易云音乐NCM格式终极解密:免费解锁你的音乐收藏完整指南【免费下载链接】ncmdump项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump

2026/06/30 13:30:06

沈阳网站建设台州网站建设

第一章:C#内联数组性能优化概述在高性能计算和底层系统开发中,C#通过引入内联数组(Inline Arrays)显著提升了内存布局的紧凑性和访问

2026/06/30 14:00:38

旅游网站建设株洲网站建设

Excalidraw水印功能开启方式在远程协作日益深入的今天,可视化工具早已不只是“画图”那么简单。像 Excalidraw 这样以手绘风格著称的开源白板,正被越来越多的技

2026/06/30 11:25:25

网站建设论文网站建设运营

GPS信号模拟器终极指南:快速搭建SDR软件定义卫星导航测试环境【免费下载链接】gps-sdr-simSoftware-Defined GPS Signal Simulator项目地址:

2026/06/30 11:53:28

宁波网站建设网站建设专家

使用Qwen3-VL处理长达数小时视频:秒级索引与完整回忆功能实测在智能设备无处不在的今天,我们每天都在产生海量视频数据——从长达数小时的在线课程、企业会议录像࿰

2026/06/30 11:04:53

巴中网站建设银行网站建设

基于matlab下的三维/二维元胞自动机模拟相关材料腐蚀类代码/代做。 代码共包括以下内容: 自定义设置腐蚀参数,边界条件,元胞移动方向/规则,可视化腐蚀效果

2026/06/30 13:09:34

律师网站建设网站建设seo

创新ownCloud集群部署深度解析:三大技术方案对比与实战指南【免费下载链接】core:cloud: ownCloud web server core (Files, DAV, etc

2026/06/30 14:01:38