微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

依赖注入概论

前言

依赖注入这个词,我是在前段时间玩Window Phone 7 时发现的。后来在Enterprise 5中也发现了,在Enterprise 5说是该模式的引用是重大改进。一直都比较忙,没有空有研究这个东西。它到底是什么东西,说白了,是一种设计模式。

什么是依赖注入

allows you to inject objects into a class,rather than relying on the class to create the object itself.

简单的说,类A要使用类B的对象 :采用B的实例传入(注入)类A,而不是在类A中创建类B的对象。

使用这种方式,我们可以看出,A中使用类B不再依赖于显示创建(也就不依赖于B,从而达到松耦合的目的)。通常的实现方式:通常使用接口实现,让类A依赖于接口(B实现了该接口)

控制反转

谈到依赖注入必然就会说到“控制反转”(Inversion of Control Containers),简单地说,“依赖关系的转移,表现在高层模块不应依赖于底层模块,而模块都必须依赖于抽象;实现必须依赖于抽象,而不是抽象依赖于实现;应用程序不应该依赖于容器,而容器应该服务于应用程序。”

不打算往下写

看了一篇东西,写得很到位。文章结构如下,清楚的讲了DI的产生背景与演进过程。我想现在只需要分享,暂时不往下写。文章目录结构如下:

目录

1 IGame游戏公司的故事

1.1 讨论会

1.2 实习生小李的实现方法

1.3 架构师的建议

1.4 小李的小结

2 探究依赖注入

2.1 故事的启迪

2.2 正式定义依赖注入

3 依赖注入那些事儿

3.1 依赖注入的类别

3.1.1 Setter注入

3.1.2 Construtor注入

3.1.3 依赖获取

3.2 反射与依赖注入

3.3 多态的活性与依赖注入

3.3.1 多态性的活性

3.3.2 不同活性多态性依赖注入的选择

4 IoC Container

4.1 IoC Container出现的必然性

4.2 IoC Container的分类

4.2.1 重量级IoC Container

4.2.2 轻量级IoC Container

4.3 .NET平台上典型IoC Container推介

4.3.1 Spring.NET

4.3.2 Unity

参考文献

原文地址:《依赖注入那些事儿http://www.cnblogs.com/leoo2sk/archive/2009/06/17/1504693.html

附注:

1. 参考《Inversion of Control Containers and the Dependency Injection pattern》,Martin Fowler,23 January 2004.

2. 《Dependency Injection

原文地址:https://www.jb51.cc/javaschema/287094.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐