美文网首页
什么是依赖注入

什么是依赖注入

作者: 非资深技术人 | 来源:发表于2020-11-12 14:35 被阅读0次

把有依赖关系的类放到容器中,解析出这些类的实例,就是依赖注入。目的是实现类的解耦。

实例:Class A中用到了Class B的对象b,一般情况下,需要在A的代码中显式的new一个B的对象。采用依赖注入技术之后,A的代码只需要定义一个私有的B对象,不需要直接new来获得这个对象,而是通过相关的容器控制程序来将B对象在外部new出来并注入到A类里的引用中。这样做有什么好处呢?

解释:假如现在有N多个类,需要用到Class B,那就需要在类里面实例化N多次,这样对于后期的维护和管理都是不方便的,如果后期需求发生改变,那更改量有大很多。

依赖注入的具体实现:

上面代码中的就是依赖注入,现在又有一个问题,假如,现在类b中的b方法现在改名为c了,那a类里面的a方法中,就要将b类中调用的b方法改成c方法。那依旧涉及到那个问题,如果有N多个类要用到B类呢?那需要做的也是去N多个类中不断得去改,这样对后期得维护,需求更改都是要花费很大的成本。

因此,PHP中有一个接口类的说法,接口类:

PHP接口(interface)的特点

1、接口的方法必须是公开的。

2、接口的方法默认是抽象的,所以不在方法名前面加abstract。

3、接口可以定义常量,但不能定义成员属性,常量的定义和用法和类中常量一样。

4、类可以实现多个接口(相当于把多个功能集于一身,如手机实现了小灵通、MP3、MP4的功能)

5、接口也可以继承接口。

不多做解释,直接贴代码:

图中可以看到,b类是一个接口类,c,d继承了b类,接口类的具体规则,则可以自己百度一下,代码中,我们延续了,第一图的代码做为修改,把普通类,改为接口类来实现依赖注入,就能解决那个遗留的问题,当依赖注入的类中的方法,改变了,那我们需要做的就是,在原有的类中,创建一个子类,接着写上相同得方法,然后在方法中写上需要的内容和逻辑就行了,当需要得时候,直接实例化,然后注入到需要的类中就行,哪怕是那些类中原有存在的方法都不需要更改。

作者:youngxs
链接:https://www.jianshu.com/p/31b299bf04d8
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关文章

  • 理解ASP.NET Core 依赖注入

    目录: 一、什么是依赖注入 1.1、什么是依赖? 1.2、什么是注入? 1.3、依赖注入解决的问题? 二、服务的生...

  • spring入门(二)-----依赖注入

    DI依赖注入 要说什么是依赖注入,我们首先得知道什么是依赖?什么是注入? 依赖 在uml统一建模语言uml中对象关...

  • Angular基础学习-04

    本节包括AngularJS 依赖注入及路由 AngularJS 依赖注入 什么是依赖注入 wiki 上的解释是:依...

  • Dagger2使用简析——序章

    在具体使用前,首先来了解一个概念——依赖注入 1. 依赖注入 什么是依赖注入依赖注入是由于类之间的依赖关系产生的,...

  • angular依赖注入

    什么是依赖注入?依赖注入就是将依赖关系注入到将使用它的依赖对象(也就是客户端)依赖注入可能是更好地做到不改变程序客...

  • 什么是依赖注入

    导读 这一系列的文章讲述了依赖注入概念和一个轻量级的使用PHP实现。本篇文章为Part 1。 目录 Part 1:...

  • 什么是【依赖注入】

    依赖注入(Dependency Injection,简称 DI),它是控制反转设计原则的一种实现方式。它将容器提供...

  • 什么是依赖注入

    把有依赖关系的类放到容器中,解析出这些类的实例,就是依赖注入。目的是实现类的解耦。 实例:Class A中用到了C...

  • 什么是依赖注入

    把有依赖关系的类放到容器中,解析出这些类的实例,就是依赖注入。目的是实现类的解耦。 实例:Class A中用到了C...

  • 控制反转

    什么是控制反转(IOC),什么是依赖注入(DI)?问题:什么是控制反转(IOC),什么是依赖注入(DI)?IOC:...

网友评论

      本文标题:什么是依赖注入

      本文链接:https://www.haomeiwen.com/subject/kahpbktx.html