依赖倒转原则是针对接口编程,而不是针对实现编程。例如电脑主板插拔各种组件,内存,显卡,风扇等。他们都是针对接口的,如果是针对实现的话,内存就要对应到具体品牌的主板。
假设主板调用其他组件,那主板属于高层模块,组件属于低层模块。那么高层模块不应该依赖于低层模块。他们两者都应该依赖抽象。那这样就算改了实现,接口还是不变。这可以理解为里氏代换原则,子类可以完全替换父类,这样父类才可以复用下去,子类也可以增加自己的方法。
依赖倒转原则:1.高层不依赖低层,都依赖抽象。2.抽象不依赖细节,细节依赖抽象(针对接口编程,而不是针对实现编程)