# 控制反转

> 控制反转（英语：Inversion of Control，缩写为IoC），是面向对象编程中的一种设计原则，可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入（Dependency Injection，简称DI），还有一种方式叫“依赖查找”（Dependency Lookup）。

- ID: m04477
- 分类: business
- 领域: 管理学

## 定义

"不要给我们打电话，我们会打给你。" 在传统编程中，代码主动调用库；在IoC中，框架（容器）控制流程，在需要时调用代码。脚手架作用： 被动式主动。在管理专家或创意人才时，不要试图微观管理（主动调用他们），而是搭建好平台和规则（框架），让他们在特定触发点自动发挥作用。这是处理高复杂度系统的放权智慧。

## 机制

传统程序主动调用库（控制流在应用）；IoC中框架掌握主循环，在合适时机回调应用代码（“别call我们，我们call你”）。把流程控制权从组件上移到容器/平台，实现解耦与可插拔。

## 练习

1. 抽象出可扩展点（接口/回调）。2. 把主流程交给框架/容器。3. 业务代码在触发点被调用。4. 通过配置/依赖注入组装。

## 脚手架用法

被动式主动。在管理专家或创意人才时，不要试图微观管理（主动调用他们），而是搭建好平台和规则（框架），让他们在特定触发点自动发挥作用。这是处理高复杂度系统的放权智慧。

[阅读网页](https://thinkingmodels.site/entries/detail/m04477)
