副标题 / 摘要
好莱坞原则的核心是“框架调用业务代码”,而不是业务代码主动控制流程。本文解释其意义与使用方式。
目标读者
- 使用框架开发的工程师
- 设计扩展机制的开发者
- 关注解耦与控制反转的团队
背景 / 动机
传统流程由业务代码掌控,但当系统需要扩展与统一规范时,框架更适合主导流程。
好莱坞原则就是这种“控制反转”的表述。
核心概念
- 好莱坞原则:Don’t call us, we’ll call you
- 控制反转(IoC):流程控制权交给框架
- 回调/钩子:框架在特定时机调用业务逻辑
实践指南 / 步骤
- 定义扩展点接口
- 框架控制主流程
- 业务只注册回调
- 通过配置加载插件
- 保持扩展点稳定
可运行示例
class App:
def __init__(self):
self.handlers = []
def on_event(self, handler):
self.handlers.append(handler)
def run(self, event):
for h in self.handlers:
h(event)
def log_handler(evt):
print("log:", evt)
if __name__ == "__main__":
app = App()
app.on_event(log_handler) # 注册回调
app.run("start") # 框架调用回调
解释与原理
框架掌控主流程并决定何时调用业务逻辑,这样可以保证统一的生命周期、错误处理与资源管理。
业务只需实现扩展点,减少重复与耦合。
常见问题与注意事项
会不会降低灵活性?
有一定约束,但换来更统一的规范。如何避免回调地狱?
通过清晰的扩展点与生命周期管理。适合哪些场景?
框架、插件系统、事件驱动系统。
最佳实践与建议
- 扩展点要小且稳定
- 业务逻辑不应控制主流程
- 生命周期必须清晰可观测
小结 / 结论
好莱坞原则的价值在于“框架控制流程,业务注入能力”。
它是大型系统稳定演进的关键机制之一。
参考与延伸阅读
- Inversion of Control(IoC)
- Framework Design Patterns
元信息
- 阅读时长:6~8 分钟
- 标签:好莱坞原则、IoC、框架
- SEO 关键词:Hollywood Principle, IoC
- 元描述:解释好莱坞原则及其在框架中的实践。
行动号召(CTA)
检查你当前系统的扩展点,看看是否由框架掌控生命周期。