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

JAVA 的模板方法模式解析

模板方法是什么?

  • 模板方法模式(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.rkmt.cn/news/18317.html

相关文章:

  • 《构建之法-现代软件工程》 -阅读和提问作业1
  • 计算机视觉与AI在人体成分分析中的技术突破
  • 2024-网鼎杯web-PyBlockly
  • 分享一个超级耐玩的游戏 转载 植物大战僵尸融合版最新版(v3.0.1)支持安卓版+PC电脑版
  • Qoder 负责人揭秘:Qoder 产品背后的思考与未来发展
  • CS:APP学习笔记之程序的机器级表示(三) - Invinc
  • EHOME视频平台EasyCVR构建全协议、全场景融合的视频监控中枢
  • SQL server 关于“DATEDIFF() ”日期差值计算函数的用法
  • 2025 年最新推荐 RTO 蓄热炉厂商榜单:聚焦高浓度 VOCs 处理设备,权威解读行业标杆企业优势有机废气处理/RTO 蓄热炉/RTO蓄热炉专业废气处理设备厂商推荐
  • 时变和时不变(LTI)的区别
  • 深入解析:OpenLayers地图交互 -- 章节十二:键盘平移交互详解
  • 2025 最新不锈钢管厂家推荐排行榜 权威发布:304/316L/2205 等材质焊管无缝管优质企业精选
  • 2025 年高强钢板厂家最新推荐排行榜:聚焦国内优质企业,助力采购者精准选品的权威榜单合金/HG785D/Q690D/S960QL/700L高强钢板厂家推荐
  • 后端基础-输入/输出件
  • 基于最小二乘法的离散数据曲面拟合MATLAB实现方法
  • 20251010——读后感1
  • 重庆初阳科技车辆计数厂家:多维度赋能城市建设与工程精细化管理
  • 1、在pyhcarm中安装包和指定镜像源
  • 缓存监控--来源于网络
  • 软工第三次作业
  • 全球化部署几种方案
  • HDU6794:Tokitsukaze and Multiple
  • 当下环境通缩分析
  • shell脚本监控ssl证书到期时间
  • AI如何通过卫星图像识别刺猬栖息地
  • LeetCode热题100-75、跳跃游戏
  • rust 模块和引用
  • moectf2025-reverse-wp
  • 完整教程:【论文阅读】纯视觉语言动作(VLA)模型:全面综述
  • 2025年高适配铝型材厂家推荐:深圳市方达铝业领衔,3家企业覆盖多场景