c#中的Unity容器

  1. Unity是微软推出的IOC框架,使用这个框架,可以实现AOP面向切面编程,便于代码的后期维护,此外,这套框架还自带单例模式,可以提高程序的运行效率。
  2. IOC即为控制反转(Inversion of Control),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用传递给它
  3. DI 即为依赖注入(Dependency Injection),是实现IOC的手段和方法

上面介绍了一下Unity,IOC,DI的概念,那我们项目中什么时候会使用Unity呢,总结分析得到如下情况:

  1. 所构建的系统依赖于健全的面向对象原则,但是大量不同的代码交织在一起而难以维护。 
  2. 构建的对象和类需要依赖其他对象或类。 
  3. 依赖于复杂的或需要抽象的对象。 
  4. 希望利用构造函数、方法或属性的调用注入优势。 
  5. 希望管理对象实例的生命周期。 
  6. 希望能够在运行时管理并改变依赖关系。 
  7. 希望在拦截方法或属性调用的时候生成一个策略链或管道处理容器来实现横切(AOP)任务。 
  8. 希望在Web Application中的回发操作时能够缓存或持久化依赖关系。

使用Unity的好处:

  • Unity支持简单对象创建,特别是分层对象结构和依赖,以简化程序代码。其包含一个编译那些可能存在依赖于其他对象的对象实例机制。
  • Unity支持必要的抽象,其允许开发者在运行时或配置去指定依赖关系同时可以简单的管理横切点(AOP)。
  • Unity增加了推迟到容器组件配置的灵活性。其同样支持一个容器层次的结构。
  • Unity拥有服务定位能力,对于一个程序在许多情况下重复使用组件来分离和集中功能是非常有用的。
  • Unity允许客户端储存或缓存容器。对于在ASP.NET Web applications中开发者将容器持久化于ASP.NET中的session或application中特别有效。
  • Unity拥有拦截能力,其允许开发者通过创建并执行handlers(在方法或属性被调用到达之前)来为已存在的组件增加一个函数,并再次为返回调用结果。
  • Unity可以从标准配置系统中读取配置信息,例如:XML文件,同时使用配置文件来配置容器。
  • Unity支持开发者实现自定义容器扩展,例如:你可以实现方法来允许额外的对象构造和容器特征,例如缓存。
  • Unity允许架构师和开发者在现代化的程序中更简单的实现通用设计模式
 上面我们分析了unity使用的场景以及unity能够解决的问题,那下面我们来具体讲解一下如何使用unity。
 

猜你喜欢

转载自www.cnblogs.com/loverwangshan/p/10485044.html