我目前正在尝试弄清SOLID。因此,依赖倒置原则意味着任何两个类都应该通过接口而不是直接进行通信。示例:如果class A
有一个方法,该方法需要一个指向类型的对象的指针class B
,则该方法实际上应在一个类型为对象的对象abstract base class of B
。这对打开/关闭也有帮助。
如果我理解正确,那么我的问题是将其应用于所有类交互是一种好习惯还是应该尝试从层次上考虑?
我对此表示怀疑是因为我们为遵循这一原则付出了一些代价。说,我需要实现feature Z
。经过分析,我的结论是功能Z
包含的功能A
,B
和C
。我创建了一个门面类Z
,即,通过接口,使用类A
,B
和C
。我开始编码的实施,在某些时候我意识到,任务Z
实际上是由功能性A
,B
和D
。现在,我需要取消C
界面,C
类原型并编写单独的D
界面和类。如果没有接口,则只需要替换该类。
换句话说,要更改某些内容,我需要更改1.调用者2.接口3.声明4.实现。在python直接耦合的实现中,我只需要更改实现。