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

        最近学习core,琢磨配置文件读取当中,对其中一些概念不是很清晰,比如依赖注入。

        什么是依赖注入,为什么要用这种形式,即它解决了什么问题。上网科普了一番之后心里有了比较清晰的答案。

        依赖是一种关系,依赖注入,就是将这种关系注入到要使用的对象里,这样做的好处是解耦!

        举个栗子:

        

    Public Person{
    ...
    public void drive(){
      Car toyota=new Car("TOYOTA");
      toyota.挂档;
      toyota.踩油门;
      toyota.打方向;
    }
    }

        这段代码里,Person类依赖了Car类,因此这两个类就产生了耦合,那么怎么解决这个问题呢,我们先理清下面几个概念:

        依赖倒置,即控制反转,实现依赖反转的方式是依赖注入。即,通过依赖注入可以实现控制反转。

        而依赖倒置有一个原则很重要:上层模块不应该依赖于下层模块,它们共同依赖于一个抽象;抽象不能依赖于具象,具象依赖于抽象。

        所以根据这个原则,Person里是不可以依赖Car的,做法是Person依赖于一个抽象 ICar:

        

    Public Person{
    private ICar car;
    public Person(ICar onecar){
      car=onecar;
    }
    public void drive(){
      car.挂档;
      car.踩油门;
      car.打方向;
    }
    }

        进行注入以及调用的时候:

    Toyota toyota=new Toyota();
    Person boy=new Person(toyota);
    boy.drive();

        以上就完成了一个简单的一个依赖注入的案例,core里Startup中的ConfigureServices注入原理就是这么一个过程。使用依赖注入的思想,就避免不了和接口打交道,因为接口是抽象的,继承该接口的类可以是实例化接口的方法,然后做对应的事情。

  • 相关阅读:
    javascript实现图片的淡入淡出
    javascript实现(分享到xxx)的小实例
    javascript中奇怪事件
    javascript方式实现无缝滚动(两种方式)
    jquery 函数的3种用法
    jquery方法的隔行变色
    DOM对象与jquery对象
    入口函数的标准
    真数组与伪数组的区别
    创建正则表达式对象
  • 原文地址:https://www.cnblogs.com/sunshine-wy/p/9199412.html
Copyright © 2011-2022 走看看