我正在将 nTier 架构迁移到六边形架构中。我的域现在定义良好,并且我拥有所有基础设施依赖项的接口。查看数据库存储库,我有几个数据库,并且在 Infra 端有一个实现每个 repo 的类。我的问题是关于数据库依赖的正确方法应该是什么:
1-在域端有一个接口来处理数据访问,然后依赖于基础设施实现,并有一个类作为所有数据库存储库的入口点,就像一个门面,从那里调用所有存储库实现。这种方法与我在 nTier 应用程序中已有的方法相同,外观和存储库是当前的数据库层。
2-在域端为我需要的每个数据库提供接口。每个接口都将在 Infra 端实现以访问相应的 DB。它使层保持薄,但这种方法将数据管理逻辑添加到域。域不应该关心数据在哪里,基础设施应该处理这个问题。如果将某些数据移动到另一个数据库,则需要在域端更改相应的接口(例如,将暴露此数据的方法移动到另一个接口)
让我知道,