好莱坞原则:别打给我,我会打给你
副标题 / 摘要 好莱坞原则的核心是“框架调用业务代码”,而不是业务代码主动控制流程。本文解释其意义与使用方式。 目标读者 使用框架开发的工程师 设计扩展机制的开发者 关注解耦与控制反转的团队 背景 / 动机 传统流程由业务代码掌控,但当系统需要扩展与统一规范时,框架更适合主导流程。 好莱坞原则就是这种“控制反转”的表述。 核心概念 好莱坞原则: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") # 框架调用回调 解释与原理 框架掌控主流程并决定何时调用业务逻辑,这样可以保证统一的生命周期、错误处理与资源管理。 业务只需实现扩展点,减少重复与耦合。 ...