依赖倒置原则
依赖倒置原则的意义
程序要依赖抽象,而不依赖于具体实现,简单来说就是面向接口编程,减少程序之间的耦合性。
概念描述:
- 底层模块:不可分割的原子逻辑,可能会根据业务逻辑经常变化。
- 高层模块:低层模块的再组合,对低层模块的抽象。
依赖倒置原则的优点
- 可以通过抽象使各个类或莫亏矮的实现彼此独立,不互相印象,实现模块间低耦合。
- 可以规避一些非技术因素引起的问题(对于大项目,客户需求的不断改变,通过采用依赖导致原则设计的接口或抽象类,可以减少需求变化引起的工作量)。
- 可以从今并行开发(两个之间有依赖关系,只要定出两者之间的接口或抽象类就可以独立开发,项目之间的单元测试也可独立的运行)。
依赖的三种写法
构造注入:通过构造函数注入实例变量。
设值注入:通过Setter方法注入实例变量。
接口注入:通过接口方法注入实例变量。
一个实例
司机驾驶奔驰汽车场景。
司机此时是开的奔驰。
如果司机不开奔驰了,要开宝马了。但是依照上边设计,不能开宝马,不合理。司机类和奔驰类是紧耦合的关系,如果要改为开宝马,则必须修改司机类,根据依赖导致原则,重新编写如下
此时,底层模块(不同型号车辆类)的变化不会影响高层。