zoukankan      html  css  js  c++  java
  • Unity学习笔记(1):认识Unity

    Unity是什么?

    Unity是patterns & practices团队开发的一个轻量级、可扩展的依赖注入容器,具有如下的特性:

    1. 它提供了创建(或者装配)对象实例的机制,而这些对象实例可能还包含了其它被依赖的对象实例。
    2. Unity允许将预先配置的对象注入到类中,实现了inversion of control (IoC)的功能。在Unity中,支持constructor injection(构造器注入), property setter injection(属性设值注入)以及method call injection(方法注入)。ps:这里的方法注入与Martin Fowler定义的接口注入类似而稍有区别。
    3. 支持容器的体系结构。一个容器可以有子容器,允许从子容器到父容器的对象定位查询。
    4. 可以通过配置文件进行准备和配置容器。
    5. 不会影响到类的定义(属性设值注入和方法注入除外),这也是轻量级容器的一个体现。
    6. 支持自定义的容器扩展。

    IoC又是什么?

    IOC(Inversion of Control),中文译为控制反转,又称为“依赖注入”(DI =Dependence Injection)

    IOC的基本概念是:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器负责将这些联系在一起。 所有的组件初始化和调用都由容器负责。组件处在一个容器当中,由容器负责管理。

    简单地说,就是应用本身不负责依赖对象的创建和维护,而是将其交给一个外部容器来负责。这样控制权就由应用转移到了外部IoC 容器,即控制权实现了所谓的反转。比如在类型A 中需要使用类型B 的实例,而B 实例的创建并不由A 来负责,而是通过外部容器

    来创建。通过IoC 的方式实现针对目标Controller 的激活具有重要的意义。

    Unity安装

     使用VS自带工具,NuGet管理器进行安装,如图所示。

    Unity简单示例

    创建Unity容器

     IUnityContainer container = new UnityContainer();
    

    创建接口映射

    container.RegisterType<ILogger, MyLog>();  

    获取对象实例

     ILogger log = container.Resolve<ILogger>();
    

    本文链接: 文章作者:雨~桐 文章出处:http://www.cnblogs.com/piscesLoveCc/ 如果您觉得阅读本文对您有帮助,请点一右下角的“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    记录上锁(字节范围锁,特例:锁住文件的某一部分或者整个文件)
    读写锁的实现原理(pthread_rwlock_t)
    Linux 互斥锁的实现原理(pthread_mutex_t)
    System V消息队列
    Web安全之SQL注入攻击技巧与防范
    如何正确地写出单例模式
    java的concurrent用法详解
    java并发编程-Executor框架
    java.util.concurrent包分类结构图
    Java多线程干货系列(1):Java多线程基础
  • 原文地址:https://www.cnblogs.com/piscesLoveCc/p/5502563.html
Copyright © 2011-2022 走看看