2

在核心层使用ISpecification(来自 Ardalis.Specification 包)不会导致与库的紧密耦合?我认为它增加了与特定库的紧密耦合,它违反了 OOP 原则并影响了它的未来发展。

4

1 回答 1

1

当遵循 SOLID 原则,特别是依赖倒置原则以及清洁架构(又名洋葱、六边形、端口和适配器等)时,最好不要让依赖关系从您的高级业务逻辑(领域层)类和类型流向您的低级实现细节。我想这就是你所关心的。

但是,利用仅包含内存功能且不添加任何与基础架构问题的耦合的库会很有用。例如,在我的项目中,我的核心域项目对这些包的依赖关系并不罕见:

这些都不依赖于特定的实现细节。

也就是说,我不会添加对特定于实现的包的引用或依赖,例如:

这些是单独的包的部分原因是您可以利用这些包的内存中功能,同时保持特定于基础设施的实现分开(并且仅在适当时引用它们)。

于 2021-05-13T13:47:54.207 回答