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

德清艾薇诗智能家居有限公司 2026/09/09 17:47:43

模板方法模式(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();}}

执行结果:

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

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

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

黄浦网站建设网站建设内容

AWK实用程序与脚本编程指南在AWK编程中,有许多实用的程序和脚本技巧,能够帮助我们更高效地处理数据、生成报告以及进行文件操作。下面将介绍一些常见的应用场景及对应的实现方法。1. 字符处理函数的改进最

2026/06/30 13:55:08

大连网站建设宜昌网站建设

Sabaki围棋平台:重塑你的围棋体验新范式【免费下载链接】SabakiAn elegant Go board and SGF editor for a more civilized a

2026/06/30 11:53:58

网站的建设博客网站建设

打造迷人应用:共享与设置功能全解析在应用开发中,共享和设置功能是提升用户体验的关键环节。下面我们将深入探讨应用中的共享魅力(Share Charm)和设置魅力(Settings Charm),并详细介

2026/06/30 12:11:30

洛阳网站建设黑龙江网站建设

程序员技术学习路径完整指南:从入门到精通的5大阶段【免费下载链接】Best-websites-a-programmer-should-visit-zh程序员应该访问的最佳网站中文版项目地

2026/06/30 13:42:37

网站建设与网站建设的意义

5分钟构建企业级充电平台:奥升云部署终极指南【免费下载链接】奥升充电桩平台orise-charge-cloud⚡️充电桩Saas云平台⚡️完整源代码,包含模拟桩模块

2026/06/30 14:14:39

网站建设流程诸城网站建设

还在为PC游戏无法完美支持PlayStation手柄而烦恼吗?DS4Windows正是你需要的解决方案!这款优秀的手柄映射工具不仅让PS4/PS5手柄在PC上完美运行&#x

2026/06/30 13:52:07

网站建设广告pc网站建设

AI漫剧制作工具2025推荐,解锁低成本创意变现新路径据《2025中国数字内容产业白皮书》显示,2025年国内漫剧市场规模预计突破120亿元,同比增长65%&

2026/06/30 13:26:05

福田网站建设建设建设网站的

语音合成行业变革者:GPT-SoVITS带来的冲击在AI生成内容爆发的今天,我们已经习惯了由机器“朗读”新闻、播报导航、甚至演绎有声小说。但你有没有想过——如果只需一分钟录

2026/06/30 12:36:02

湖州网站建设网站企业建设

网盘直链下载助手推荐:方便分发HeyGem生成的大体积视频文件在AI内容创作日益普及的今天,数字人视频正快速渗透进企业宣传、在线教育、短视频运营等多个领域。像HeyGem这

2026/06/30 12:32:02