第2篇模板方法模式核心好莱坞原则摘要模板方法模式的核心角色有哪些什么是好莱坞原则钩子方法有什么用本文用一张UML图和三个角色表帮你三分钟掌握模板方法模式的结构与运作机制。​本文是《Java 23 种设计模式从踩坑到精通》模板方法模式长文的扩充短文第2篇帮助你碎片化掌握核心知识点。上一篇我们从泡茶和冲咖啡的场景认识了模板方法模式的核心思想固定骨架填充细节。那这个模式到底长什么样今天我们来拆解它的三个核心角色和一条黄金法则。UML 结构速览三个角色各司其职角色职责举例抽象父类​定义算法骨架模板方法声明抽象方法和钩子方法BeverageMaker具体子类​实现抽象方法可选重写钩子方法TeaMaker,CoffeeMaker模板方法​通常声明为final防止子类篡改流程makeBeverage()核心机制好莱坞原则**“Don’t call us, we’ll call you.”**​别打电话给我们我们会打给你。父类控制整体流程在合适的时机回调子类的方法。子类永远不需要主动调用父类的模板方法父类会在流程走到相应步骤时自动调用子类的实现。钩子方法可选的干预点钩子方法是在父类中定义的、带有默认实现的方法子类可以选择性地重写它来控制流程的分支。例如protectedbooleanwantCondiments(){returntrue;// 默认加调料}咖啡子类重写为返回false就能跳过加调料步骤。钩子的存在让模板方法模式更加灵活不会因为“必须实现”而变得僵硬。一句话总结父类定流程子类填细节钩子控开关。完整长文入口本文是模板方法模式扩充系列的第2篇。如果你想一次性阅读完整内容含UML、完整代码、框架应用、面试追问等请查看原长文 《Java 23 种设计模式从踩坑到精通 | 模板方法模式》系列导航上一篇泡茶和冲咖啡的代码为什么不能复用下一篇手写一个饮品制作模板附代码返回扩充系列目录 订阅本专栏不错过每一篇原系列总目录 订阅本专栏不错过每一篇