码迷,mamicode.com
首页 > 其他好文 > 详细

依赖注入

时间:2017-08-05 20:34:02      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:this   翻转   方式   public   函数   3.2   1.2   耦合   概念   

说到依赖注入(Dependency Injection),肯定离不开控制反转(Inversion of Control).依赖注入是实现控制翻转最常见的方式之一(因为spring的流行).

这里根据我自己学习依赖注入(DI)的资料整理,以及一些自己的看法

1.依赖注入初识

  无论是因为什么,从哪里接触的依赖注入.首先就是学习三连了:依赖注入是什么?为什么要用依赖注入?怎么用依赖注入?

  1.1是什么?

    依赖注入,就是一个类需要使用到另外一个类的实例的时候,这个实例是通过第三方注入的方式被提供的.

    举例:当你需要喝水时,水的实例xx矿泉水,是买来的,而不是自己生产的;

  1.2为什么?

    依赖注入的目的是实现控制反转,而控制反转的目的在于解耦.

    举例:当你喝水的时候,你只要"需要",即暴露对外接口,水的实例就会通过某个过程,提供给你,你不需要关心是哪种水.(还记得java的封装特性吗?)

    那么依赖注入的直接优势就是解耦以后的高可维护性.

    举例:只暴露需要水的接口,至于选择哪种水(啤酒,饮料,矿泉水?),则有另外的方法实现(你在商店选择哪种水),即决定注入你的是类的哪个实例.这样的话需要水,和需要那种水,就降低了耦合,

    补充:工厂模式是依赖注入的实现手段,参考spring的bean容器概念.

  1.3怎么用

    依赖注入有三种注入方式

    1.3.1构造函数注入(Contructor Injection)

      

public class People{
    private Dog dog;
    public People(Dog dog){
        this.dog = dog;
    }  
}

    1.3.2setter注入

public class People{
    private Dog dog;
    public void setDog(Dog dog){
        this.dog = dog
    }
}

    1.3.3接口注入

public interface Animal{
    public void setAnimal(Dog dog);  
}

public class People implements Animal{
    @Override
    public void setAnimal(Dog dog){
        this.dog = dog;
    }
}

初识到这里了先

依赖注入

标签:this   翻转   方式   public   函数   3.2   1.2   耦合   概念   

原文地址:http://www.cnblogs.com/zyh186/p/7291197.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!