首页 > 其他 > 详细

依赖注入

时间:2017-08-05 20:24:55      阅读:185      评论:0      收藏:0      [点我收藏+]

说到依赖注入(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;
    }
}

初识到这里了先

依赖注入

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!