这是一个类与类之间调用规则,术语上解释就是对于组合之间的规范。
DIP的主要思想是如果一个类的一个成员或参数为一个具体类型,那么这个类就依赖于那个具体类型。
如果在一个继承结构中,上层类中的一个成员或参数为一个下层类型,那么这个继承结构就是高层依赖于底层了。
个人理解:就是尽量面向接口或抽象编程。把具体类型变成一个抽象的标示,什么改变的时候有问题?如果有问题那么就是抽象的地方具体类无法进行代替了,可以参照LSP规则的解决办法。
另外,需要分清具体的不变类是哪些,对于不变类可以不使用这个规则。
关键点:
分清系统中的不变类和变化类。把变化类作抽象,进行引用(业务分析/经验很重要呀)。