0

据我了解YAGNI,只有在需要时我们才需要提取接口。因此,如果我们不需要多态性并且现在只有一个实现,我们就不需要使用接口。但是DIP说:

A. 高级模块不应该依赖于低级模块。两者都应该依赖于抽象。

B. 抽象不应该依赖于细节。细节应该取决于抽象。

看起来YAGNI和选项 B之间存在一些差异DIP。此外,如果我们想要应用OCP,我们需要反转依赖关系的控制并提取抽象,以便能够在不修改该类型的情况下扩展一个类型。

此外,一些技术需要提取抽象才能对类型客户端进行单元测试。但是例如在java中我们不需要它。所以我想知道如果我现在只有一个实现,是否需要提取抽象?

4

0 回答 0