用最简单的方式解释依赖注入

在软件工程领域,依赖注入(Dependency Injection)是用于实现控制反转(Inversion of Control)的最常见的方式之一

控制反转用于解耦

假如有一个 船(C)类 ,一个 桨(J) 类

 

如果船要干什么事,肯定需要浆的参与。所以是十分 “依赖”浆;

出了需求需要重构:这时候我们需要控制浆的长度为10在构造方法中。我们需要这么写;

 

一个特性需要修改浆构造方法,又需要修改船其中的new J()方法。这时候就设计者就思考,为什么我们加入一个特性需要更改两个类中代码(这也就是耦合度高)!

所以我们要解耦要依赖注入;

常用解耦方式:

  • 构造方法注入

如下:我重构代码的时候在也不用看哪里的浆还是短的了!因为船构造方法依赖了浆。任你浆怎么设计,我用的时候传一个浆进来即可。(下层依赖上层,用的时候传入,而不是针对下层去修改)

 

 

  • 工厂模式注入


工厂模式 Human 人 去注入; 工厂类如下

 

此时如下:不管你怎么改浆,改成100米与船都无关,他只要依赖Human,
一千个船修改浆需求我只修改Human类中方法便可。(核心业务逻辑需要依赖的类实例化交给第三方类来实现注入。)

 

  • 框架注入(本质还是工厂设计模式的具体实现)

本质也是第三方依赖注入,但是这个第三方可以脱离类。将对象依赖映射信息存储在容器一般为.xml 或者特定的对象中,并实现动态的注入。

 

最后本人个人理解:
为什么要有依赖注入(一种设计代码模式),因为我们要控制反转(设计代码的思路)。

为什么控制反转。因为我们软件设计需要符合软件设计原则依赖倒置(设计代码原则),单一职责原则。
说通俗点,咱们要解耦啊。
MVP模式就是解耦比较全面的设计模式模型,

相关资源:渣浆泵的计算机选型软件及应用.rar-制造文档类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年2月19日
下一篇 2019年2月19日

相关推荐