zoukankan      html  css  js  c++  java
  • IOC&DI

    【概述】

    1.IOC(Inversion of Control):

    即“反转控制”,不是什么技术,而是一种设计思想。其思想是反转资源获取的方向

    传统的资源查找方式要求组件向容器发起请求查找资源。作为回应,容器适时地返回资源。

    而在应用了IOC之后,则是容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源。这种行为也被称为查找的被动形式。

    所谓IOC其实就是打破原有的由类自身创建对象改变为由容器来创建对象。IOC主要包含反转(角色的反转)和控制(对象的创建)两个部分。

    【猩生柯北举栗子:就好像是以前买菜你需要亲自提着菜篮子去菜市场买菜,而现在用了IOC后就不用亲自去菜市场了了,你只需要将菜篮子放在家门口,菜就会自己到你的篮子里面。】

    2.DI(Dependency Injection)--IOC的另一种表述方式:即组件以一些预定义好的方式(例如:setter方法)接受来自如容器的资源注入。相对于IOC而言,这种表述更加直接。

    【示例】

    class A{}

    class B{

           private A a;

           public void setA(A a){

                     this.a = a;

          }

    }

    需求:从容器中获取B对象,并使B对象的a属性被赋值为容器中A对象的引用。

    传统方式:

                     

      A a = getA();  //获取A

      B b = getB();  //获取B

      b.setA(a);   //建立关联关系

    用IOC容器:

     B b = getB();

    说明:用IOC容器后,容器通过setter方法自动把A对象的引用赋给了B对象的a属性。

    IOC发展:分离接口和实现(原始社会),工厂设计模式(封建社会),反转控制(按需分配)。

    每接触一个新领域,我就像一块掉进水里的海绵,四面八方的养分都让我不断充实。O(∩_∩)O~
  • 相关阅读:
    Asp.net MVC3
    ASP.NET 路由实现页面静态化(附在线Demo和Source)
    ASP.NET MVC中Unobtrusive Ajax的妙用
    ASP.NET MVC Controller激活系统详解:IoC的应用[上篇]
    探讨大数据量处理
    提高ASP.NET性能与可伸缩性的几个个常用方法剖析
    Winform 应用
    C#利用QrCode.Net生成二维码
    MS SQL删除大数据
    由浅入深:自己动手开发模板引擎——置换型模板引擎1
  • 原文地址:https://www.cnblogs.com/zhzcode/p/9579359.html
Copyright © 2011-2022 走看看