加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

依赖注入 – DI容器如何工作的简单说明?

发布时间:2020-12-14 00:46:42 所属栏目:百科 来源:网络整理
导读:在简单的术语和/或高级伪代码中,DI容器如何工作以及如何使用? 在其核心,DI容器基于接口和具体类型之间的映射创建对象. 这将允许您从容器请求抽象类型: IFoo f = container.ResolveIFoo(); 这要求您先前配置容器从IFoo映射到实现IFoo的具体类(例如Foo). 这
在简单的术语和/或高级伪代码中,DI容器如何工作以及如何使用?
在其核心,DI容器基于接口和具体类型之间的映射创建对象.

这将允许您从容器请求抽象类型:

IFoo f = container.Resolve<IFoo>();

这要求您先前配置容器从IFoo映射到实现IFoo的具体类(例如Foo).

这本身并不是特别令人印象深刻,但DI容器做得更多:

>他们使用自动布线,这意味着他们可以自动地弄清楚,如果IFoo将Foo和IBar映射到Bar,但Foo依赖于IBar,那么当您请求IFoo时,它将创建一个带有Bar的Foo实例.
他们管理组件的使用寿命.你们每次都想要一个新的Foo实例,但在其他情况下,你可能需要同样的实例.您甚至可能每次都想要新的Foo实例,但是注入的Bar应该保持不变.

一旦您开始尝试手动管理构图和生命周期,您应该开始欣赏DI容器提供的服务:)

许多DI容器可以做得比以上更多,但这些是核心服务.大多数集装箱提供configuring via either code or XML的选择.

关于容器的正确使用,Krzysztof Kozmic刚刚发布了a good overview.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读