稳定的抽象
反之,改变具体实现并不总是,或者非常少会要求他们实现的接口改变。因此接口比实现更加不易变,稳定得软件架构避免依赖易变得具体类,倾向于使用稳定的抽象接口。
- **被引用异变的具体实现类:**请引用抽象接口类,使用抽象工厂模式创建对象。
- **别从易变的具体实现类派生:**继承是所有代码依赖关系里最强,最死板的。
- **别覆盖具体实现的函数:**你覆盖这些函数时,你无法消除这些源码依赖,应该把这个函数声明成抽象的,然后可以写多个实现。
- 别提任何的具体实现和易变类的名字
工厂
在Java中,我们可以用抽象工厂模式去管理这些不好处理的依赖。
控制流的走向和跨越曲线的源码依赖的指向是相反的。源码依赖和控制流是相反的,这也就是我们称该原则为依赖倒置的原因。