依赖注入概论

前端之家收集整理的这篇文章主要介绍了依赖注入概论前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

前言

依赖注入这个词,我是在前段时间玩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

猜你在找的设计模式相关文章