依赖注入控制反转

依赖注入、控制反转,这两个词天天用,但属于用了很多年真想讲出来不太好表达那种,结合网上资料总结下:

https://www.cnblogs.com/levontor/p/11040029.html

https://www.zhihu.com/question/23277575

一、依赖注入

依赖注入,就是把底层类传入上层类,三种注入方式

 

 通过具体例子来体会二者的区别:“人与身份证的依赖关系”适合采用Setter注入,因为人不是一出生就有身份证,而是到了法定年龄才有,用构造函数注入表达的语义与此相违背。相反“人与父母的依赖关系”则适合采用构造函数注入,因为亲子关系是从人一出生就建立的,用Setter注入必然使得对象创建后有一段时间处于非法状态,按契约式设计的术语即破坏了对象的不变量(invariant)。

二、控制反转

控制反转就是将创建对象的控制权反转过来由容器创建,强调的是一种能力和思想。

可能反转不是中国人的语法习惯,听着很别扭,可能改成“”取消“”更好理解。

posted @ 2020-04-02 14:56  zhaogaojian  阅读(183)  评论(0编辑  收藏  举报