第2篇:模板方法模式核心:好莱坞原则

第2篇:模板方法模式核心:好莱坞原则

摘要:模板方法模式的核心角色有哪些?什么是好莱坞原则?钩子方法有什么用?本文用一张UML图和三个角色表,帮你三分钟掌握模板方法模式的结构与运作机制。​

本文是《Java 23 种设计模式:从踩坑到精通》模板方法模式长文的扩充短文第2篇,帮助你碎片化掌握核心知识点。

上一篇我们从泡茶和冲咖啡的场景认识了模板方法模式的核心思想:固定骨架,填充细节。那这个模式到底长什么样?今天我们来拆解它的三个核心角色和一条黄金法则。


UML 结构速览

三个角色各司其职

角色 职责 举例
抽象父类 定义算法骨架(模板方法),声明抽象方法和钩子方法 BeverageMaker
具体子类 实现抽象方法,可选重写钩子方法 TeaMaker, CoffeeMaker
模板方法 通常声明为 final,防止子类篡改流程 makeBeverage()

核心机制:好莱坞原则

**"Don't call us, we'll call you."**​

(别打电话给我们,我们会打给你。)

父类控制整体流程,在合适的时机回调子类的方法。子类永远不需要主动调用父类的模板方法,父类会在流程走到相应步骤时自动调用子类的实现。

钩子方法:可选的干预点

钩子方法是在父类中定义的、带有默认实现的方法,子类可以选择性地重写它来控制流程的分支。例如:

java 复制代码
protected boolean wantCondiments() {
    return true; // 默认加调料
}

咖啡子类重写为返回 false,就能跳过加调料步骤。钩子的存在让模板方法模式更加灵活,不会因为"必须实现"而变得僵硬。


一句话总结:父类定流程,子类填细节,钩子控开关。


📖 完整长文入口 :本文是模板方法模式扩充系列的第2篇。如果你想一次性阅读完整内容(含UML、完整代码、框架应用、面试追问等),请查看原长文:

👉 《Java 23 种设计模式:从踩坑到精通 | 模板方法模式》

🔗 系列导航

相关推荐
用户9385156350711 小时前
工厂模式与 Nest.js 核心思想 —— 从蜜雪冰城到企业级架构
后端·设计模式·nestjs
烬羽15 小时前
从 nest new 到 Hello World:一个最小 NestJS 项目,讲透工厂 + 装饰器 + 模块化
设计模式·node.js·nestjs
艺艺生辉2 天前
从if-else到策略模式
后端·设计模式
小林ixn2 天前
单例模式:从弹窗管理到全局状态,一个模式搞定
前端·javascript·设计模式
AI人工智能+电脑小能手2 天前
大白话说Java设计模式-17-装饰器模式(源码剖析篇)
java·spring·设计模式·装饰器模式·源码分析·io流
workflower2 天前
案例 :某交通厅基于AI技术的智能安全运营实践
网络·人工智能·安全·设计模式·机器人
rolt2 天前
[pdf]390道《软件方法》强化自测题业务建模需求分析共328页(202608更新)
产品经理·架构师·uml
AI人工智能+电脑小能手2 天前
大白话说Java设计模式-16-装饰器模式(业务实战篇)
java·设计模式·装饰器模式·功能扩展·动态增强
workflower3 天前
例二:某汽车制造企业深度融合AI智能体,构建园区网络的智能运维体系
人工智能·机器学习·设计模式·机器人·云计算·汽车·制造
ly76893 天前
Java 设计模式详解:从原则到 23 种经典模式
java·开发语言·设计模式