• IOC轻量级框架之Unity


    任何事物的出现,总有它独特的原因,Unity也是如此,在Unity产生之前,我们是这么做的

        我们需要在一个类A中引用另一个类B的时候,总是将类B的实例放置到类A的构造函数中,以便在初始化类A的时候,得到类B的实例。

        这么做的弊端是如果类B有了一些修改(比如加入了带参构造等等),那么这种修改和测试将是异常难受的。

    IOC介绍

        其原理是基于OO设计原则的The Hollywood Principle:Don't call us, we'll call you(别找我,我会来找你的)。也就是说,所有的组件都是被动的(Passive),所有的组件初始化和调用都由容器负责。组件处在一个容器当中,由容器负责管理。

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

    Unity介绍

        Unity是微软patterns& practices组用C#实现的轻量级、可扩展的依赖注入容器,我们可以通过代码或者XML配置文件的形式来配置对象与对象之间的关系,在运行时直接调用Unity容器即可获取我们所需的对象,以便建立松散耦合的应用程序。

         对于小型项目:用代码的方式实现即可

         对于中大型项目:使用配置文件比较好

    在Unity产生之后,我们是这么做的

    1.通过Nuget=获取到最新版本的Unity

       输入命令:Install-Package unity

       在项目中引入一下dll

    Microsoft.Practices.Unity.Configuration.dll
    Microsoft.Practices.Unity.dll
    Microsoft.Practices.Unity.RegistrationByConvention.dll

    2.Unity依赖注入划分为3 种形式

     2.1 造器注入、

     2.2 属性(设置)注入

     2.3 接口注入

    未完待续,各位老铁不要急

  • 相关阅读:
    初探webpack4--根据模版自动生成HTML
    初探webpack4---简介与常用loader使用方法
    axios请求五种方法
    iview实现国际化
    解决vuex页面刷新导致数据丢失问题
    一步一步搞懂支持向量机——从牧场物语到SVM(下)
    一步一步搞懂支持向量机——从牧场物语到SVM(上)
    set 利用lower_bound实现key索引
    unique & lower_bound C++
    逆元
  • 原文地址:https://www.cnblogs.com/cnki/p/7105560.html
Copyright © 2020-2023  润新知