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~
  • 相关阅读:
    Oracle第五周测验
    软件测试第五周
    Oracle第四周作业
    c++第二章测试
    软件测试第四章
    软件测试 第三章
    Centos 安装.NET Core环境
    .net core 集成极光推送
    Swagger添加文件上传测试
    linux firewall
  • 原文地址:https://www.cnblogs.com/zhzcode/p/9579359.html
Copyright © 2011-2022 走看看