副标题 / 摘要

好莱坞原则的核心是“框架调用业务代码”,而不是业务代码主动控制流程。本文解释其意义与使用方式。

目标读者

  • 使用框架开发的工程师
  • 设计扩展机制的开发者
  • 关注解耦与控制反转的团队

背景 / 动机

传统流程由业务代码掌控,但当系统需要扩展与统一规范时,框架更适合主导流程。
好莱坞原则就是这种“控制反转”的表述。

核心概念

  • 好莱坞原则:Don’t call us, we’ll call you
  • 控制反转(IoC):流程控制权交给框架
  • 回调/钩子:框架在特定时机调用业务逻辑

实践指南 / 步骤

  1. 定义扩展点接口
  2. 框架控制主流程
  3. 业务只注册回调
  4. 通过配置加载插件
  5. 保持扩展点稳定

可运行示例

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")           # 框架调用回调

解释与原理

框架掌控主流程并决定何时调用业务逻辑,这样可以保证统一的生命周期、错误处理与资源管理。
业务只需实现扩展点,减少重复与耦合。

常见问题与注意事项

  1. 会不会降低灵活性?
    有一定约束,但换来更统一的规范。

  2. 如何避免回调地狱?
    通过清晰的扩展点与生命周期管理。

  3. 适合哪些场景?
    框架、插件系统、事件驱动系统。

最佳实践与建议

  • 扩展点要小且稳定
  • 业务逻辑不应控制主流程
  • 生命周期必须清晰可观测

小结 / 结论

好莱坞原则的价值在于“框架控制流程,业务注入能力”。
它是大型系统稳定演进的关键机制之一。

参考与延伸阅读

  • Inversion of Control(IoC)
  • Framework Design Patterns

元信息

  • 阅读时长:6~8 分钟
  • 标签:好莱坞原则、IoC、框架
  • SEO 关键词:Hollywood Principle, IoC
  • 元描述:解释好莱坞原则及其在框架中的实践。

行动号召(CTA)

检查你当前系统的扩展点,看看是否由框架掌控生命周期。