概述
- 高层模块不应该依赖底层模块,二者都应该依赖期抽象
- 抽象不应该依赖细节,细节应该依赖抽象
- 依赖倒置得中心思想是面向接口编程
- 相对于细节得多变性,抽象的东西更加得稳定。以抽象为基础搭建的架构比以细节为基础的架构要稳定的多。在java中抽象指的是接口或抽象类,细节就是具体的实现类。
举例如下:
假如A工长生成A汽车,最简单的写法就是创建一个A工厂类,类中定义一个生成A汽车的方法,客户端去调用A工程的A方法就行。这种写法虽然简单却不利于扩展,不符合依赖倒置原则。正确的做法应该如下:
- 创建一个工厂接口,接口中创建一个生成汽车的方法
- 需要哪个工程生成什么汽车,就创建相应的接口实现类
- 客户端需要哪个工程生成汽车,就调用哪个工程的接口实现类。