• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
掬一束月光
路漫漫其修远兮,吾将上下而求索.
博客园    首页    新随笔    联系   管理    订阅  订阅
依赖注入

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

初识到这里了先

专注Java开发

作者:翟亚豪

邮箱:zyh186214@hotmail.com

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

posted on 2017-08-05 19:43  掬一束月光  阅读(141)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3