依赖注入(DI) - zLulus/My_Note GitHub Wiki

概念

依赖注入(Dependency Injection)是一个概念,让类从外部源中获得它的依赖,而不必亲自创建它们
目的是解耦
传统应用程序示意图:
1 (3)
IoC/DI容器后程序结构示意图:
2 (4)
控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI)
依赖注入可以有很多种实现,Castle Windsor是其中一种实现

容器

容器是一个依赖反转工厂,管理所有的依赖
容器的主要职责有两个:绑定服务与实例之间的关系(控制生命周期)。获取实例并对实例进行管理(创建和销毁)

生命周期

依赖注入框架(DI)支持三种生命周期管理模式
1.Singleton
单例模式,服务在第一次请求时被创建,其后的每次请求都沿用这个已创建的服务。我们不用再自己写单例了。
2.Scoped
作用域模式,服务在每次请求时被创建,整个请求过程中都贯穿使用这个创建的服务。比如Web页面的一次请求。
3.Transient
瞬态模式,服务在每次请求时被创建,它最好被用于轻量级无状态服务。

参考资料

Inversion of Control Containers and the Dependency Injection pattern
IOC是什么意思!?
07、NetCore2.0依赖注入(DI)之生命周期
Console app 里的依赖注入及其实例生命周期