zoukankan      html  css  js  c++  java
  • 依赖注入

      经常听到“控制翻转”和“依赖注入”这两个词,所以特意去了解了一下。

      “在Spring中,控制翻转(Inversion of Control,IoC)是通过依赖注入(Dependency injection,DI)实现的。所谓依赖注入指的是,由Spring容器来负责对象的创建以及维护对象之间的依赖关系,对象不需要负责创建和解决自己的依赖。”这是我了解到的内容。

      下面谈谈我的理解:

      “厨子”、“采购员”、“原材料”、“菜”,看到这几个词的时候我们会想到什么呢?

      1、“厨子炒菜需要原材料”

      2、“采购员负责采购原材料”

      大家都知道分工细化能够带来效率的提升,厨子专注于做菜往往能做出好吃的菜,采购员专注于采购往往能买到物美价廉的材料。

      假设有类A、类B:

    1 public class A{
    2     ...
    3     ...    
    4     pubilc A(){
    5     }
    6     public A(...){
    7          ...
    8     }
    9 }
     1  public class B{
     2      A a;
     3      ...
     4      ...    
     5      pubilc B(){
     6      }
     7      public B(...){
     8           ...
     9           this.a = new A(...);
    10      }
    11  }

      在不使用依赖注入的情况下,B类需要自己动手去创建一个类A的对象来满足自己的需求,在这种情况下,类B和类A是紧耦合的,如果需要对类A进行修改,那么所有依赖类A的类都需要做相应的调整,如果依赖类A的类比较多的话,这就比较麻烦了。为了解决这种紧耦合带来的不便,就有了依赖注入。

      依赖注入的主要目的就是为了解耦,在程序开始运行后,Spring IoC容器会先创建一些类,就像采购员会先去采购一批原材料,当然了具体需要创建哪些类,需要我们告诉容器,就像具体要买哪些菜需要厨子告诉采购员,然后所有依赖于这些类的类自需要告诉容器:“我需要一个XXX类的对象”,然后然就会得到一个XXX类的对象,就像厨子想炒白菜,只需要说:“我需要白菜、盐...”,然后他就能得到想要的材料并开始炒菜。

  • 相关阅读:
    CSS3背景
    CSS3嵌入字体
    CSS3控制单行文本的溢出
    CSS3渐变色彩
    CSS3图片边框
    CSS中的各类选择器
    HTML 5入门知识——Drag
    今天是星期五,昨天下午回来之前,公司的人员都等施佳回来开会讨论需求
    这些天晚上有点睡不好,也是关于一个事情
    昨天回来后11点的时候吧午饭弄了
  • 原文地址:https://www.cnblogs.com/XiaoZhengYu/p/11588976.html
Copyright © 2011-2022 走看看