Unity(1)控制反转

控制反转

依赖注入方式 DI Types(Dependency injection)

接口注入

     在接口中定义需要注入的信息。

    首先定义一个接口,组件的注入将通过这个接口进行,该接口应由组件提供者提

供,任何想使用该组件的类都必须实现这个接口。

    public interface ILog

   {

void Log(string message);

   }

   public interface ILogInject

  {

    void InjectLog(ILog log);

   }

   public class client:ILogInject

  {

  }

  

抽象工厂模式

将对象间的依赖关系转移到接口上,在调用时由容器来组装

构造函数注入

根据构造函数的类型调用Create方法建立实体对象,然后将对象传给构造函数

降低构造函数与实体对象之间的关联性

属性注入

与构造函数注入基本类似

Unity特点:

1.支持自定义容器

2.对要注入的类型没限制,除了属性注入和方法注入需要【Dependency】特性标注,对类声明没特别要求

3.支持容器层次结构

4.支持配置文件

什么时候使用

1.类或者对象依赖与别的类或者对象

2.依赖关系比较复杂或者需要进一步提前

3.想利用DI

4.想管理对象实例生命周期

5.希望在运行时改变依赖关系

6.希望在Web 应用程序回复时可以缓存或者持久化依赖关系

posted @ 2009-05-26 10:59  TG.Yang's IT Space  阅读(467)  评论(0编辑  收藏  举报