博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
依赖注入的理解
阅读量:5114 次
发布时间:2019-06-13

本文共 897 字,大约阅读时间需要 2 分钟。

    最近学习core,琢磨配置文件读取当中,对其中一些概念不是很清晰,比如依赖注入。

    什么是依赖注入,为什么要用这种形式,即它解决了什么问题。上网科普了一番之后心里有了比较清晰的答案。

    依赖是一种关系,依赖注入,就是将这种关系注入到要使用的对象里,这样做的好处是解耦!

    举个栗子:

    

Public Person{...public void drive(){  Car toyota=new Car("TOYOTA");  toyota.挂档;  toyota.踩油门;  toyota.打方向;}}

    这段代码里,Person类依赖了Car类,因此这两个类就产生了耦合,那么怎么解决这个问题呢,我们先理清下面几个概念:

    依赖倒置,即控制反转,实现依赖反转的方式是依赖注入。即,通过依赖注入可以实现控制反转。

    而依赖倒置有一个原则很重要:上层模块不应该依赖于下层模块,它们共同依赖于一个抽象;抽象不能依赖于具象,具象依赖于抽象。

    所以根据这个原则,Person里是不可以依赖Car的,做法是Person依赖于一个抽象 ICar:

    

Public Person{private ICar car;public Person(ICar onecar){  car=onecar;}public void drive(){  car.挂档;  car.踩油门;  car.打方向;}}

    进行注入以及调用的时候:

Toyota toyota=new Toyota();Person boy=new Person(toyota);boy.drive();

    以上就完成了一个简单的一个依赖注入的案例,core里Startup中的ConfigureServices注入原理就是这么一个过程。使用依赖注入的思想,就避免不了和接口打交道,因为接口是抽象的,继承该接口的类可以是实例化接口的方法,然后做对应的事情。

 

转载于:https://www.cnblogs.com/sunshine-wy/p/9199412.html

你可能感兴趣的文章
经典算法系列一-快速排序
查看>>
设置java web工程中默认访问首页的几种方式
查看>>
ASP.NET MVC 拓展ViewResult实现word文档下载
查看>>
jQuery Mobile笔记
查看>>
8、RDD持久化
查看>>
第二次团队冲刺--2
查看>>
查询数据(后台到前台传递数据,显示数据)
查看>>
集群tomcat+apache配置文档
查看>>
VMware Tools安装
查看>>
Linux上架设boost的安装及配置过程
查看>>
[转载]加密算法库Crypto——nodejs中间件系列
查看>>
zoj 2286 Sum of Divisors
查看>>
OO5~7次作业总结
查看>>
如何判断主机是大端还是小端(字节序)
查看>>
Centos7 日志查看工具
查看>>
使用Xshell密钥认证机制远程登录Linux
查看>>
BZOJ2459 : [BeiJing2011]神秘好人
查看>>
OpenCV之响应鼠标(三):响应鼠标信息
查看>>
python7 数据类型的相互转化 字符编码
查看>>
Android 画图之 Matrix(一)
查看>>