【问题标题】:How does repository depends on usecase clean architecture存储库如何依赖于用例清洁架构
【发布时间】:2021-01-22 06:28:55
【问题描述】:

我了解用例应该如何依赖于实体,但我不知道存储库如何依赖于用例。 假设我们想使用 userUsecase.register() 将新创建的用户存储到数据库中,usecase 应该知道存储库对吗?至少用例知道存储库接口,而不是实现

【问题讨论】:

    标签: clean-architecture


    【解决方案1】:

    是的,用例本身应该只依赖于存储库接口,因此您应该将存储库接口注入到使用中案子。存储库接口应在应用程序核心层(或领域层)中定义。

    存储库接口的实现将驻留在基础设施层(也称为持久层数据层)。

    这意味着存储库实现不依赖于用例。用例和存储库实现都只依赖于存储库接口。 Dependency Inversion 原则由此得到应用。

    这样,所有依赖项都指向内部,这使得用例和存储库实现(基础架构)都依赖于核心层。但核心(即领域)层与外层层没有任何依赖关系。

    【讨论】:

    • 所以这只是“程序到接口而不是实现”的事情,对吗?这个原则适用于所有层吗?
    猜你喜欢
    • 2017-03-20
    • 2020-12-12
    • 2019-04-17
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 2017-10-16
    • 2020-07-07
    • 2022-05-18
    相关资源
    最近更新 更多