依赖倒置原则,英文缩写DIP,全称Dependence Inversion Principle。
原始定义:High level modules should not depend upon low level modules. Both should depend upon abstractions. Abstractions should not depend upon details. Details should depend upon abstractions。
官方翻译:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。
理解:被依赖的就是底层模块,依赖别人的就是高层模块,如车->车身->底盘->轮胎。
解耦方法就是把底层模块注入高层模块,即所谓的依赖注入,来实现控制反转,达到依赖倒置的原则。
依赖抽象可以理解为面向接口编程,不同类或者不同组之间只要定义好接口之后就可以同时开发。
依赖注入的方式:构造函数传入底层模块的类,Setter传递,接口传递
控制反转容器:
优点一:容器自动对你的代码进行初始化,只需维护Configuration即可
优点二:创建实例的时候不需要了解其中的细节,因为容器在进行工作的时候从最上层往下开始寻找依赖,到达最底层之后再网上一步一步new
参考:
https://www.zhihu.com/question/23277575