深入探讨依赖注入(Dependency Injection, DI)原理
依赖注入是现代软件框架(尤其是 ASP.NET Core、Spring、Angular 等)的核心基石之一。它不是简单的“把对象传进去”,而是一套完整的控制反转(IoC)实现方式,从根本上改变了对象之间的依赖关系管理。
1. 核心概念澄清
控制反转(Inversion of Control, IoC)
传统方式:对象自己创建自己需要的依赖(new)。
IoC:把“创建和绑定依赖”的控制权从对象自身转移到外部。依赖注入(Dependency Injection)
IoC 最主流的一种实现手段。通过外部把依赖“注入”到对象中,而不是对象主动去获取。依赖倒置原则(Dependency Inversion Principle, DIP)
SOLID 中的 D:- 高层模块不应依赖低层模块,两者都应依赖抽象。
- 抽象不应依赖细节,细节应依赖抽象。
DI 是实现 DIP 最有效的工程手段。