实体与用例的说明

时间:2019-12-02 06:25:05

标签: use-case clean-architecture

据我了解, use casesinteractors使用entities执行某些操作,而entities保留我们的business rules

根据此定义:

  

用例与实体互动并依赖实体

用例以何种方式取决于实体,关系是什么?

例如,假设我们有一个具有三个功能的银行应用程序:loginview balancetransfer funds

因此,要能够转移资金,用户必须登录并具有足够的余额。

我猜我们的用例是transfer funds,上面的语句是business rule,如果是这种情况,如何实现呢?

有很多类比,但很少有适当的实现。

1 个答案:

答案 0 :(得分:1)

我想分享我的理解。

  1. 实体可能不依赖于任何其他实体。它保存可用于各种应用程序的数据(状态)和逻辑。我也将实体视为普通的POJO(但这与您的数据访问层返回的东西不同)
  2. 用例与实体进行交互(因此取决于它们)并保存特定应用程序的逻辑(并通常通过各种存储库或数据访问层网关执行该逻辑

对于您指定的示例:

  1. 实体:
    • 用户(保存用户名,哈希密码和密码;验证用户名,哈希纯文本密码之类的逻辑)
    • 余额(持有用户依赖性,金额,限制,诸如验证给定转账金额是否正确的逻辑)
  2. 用例:
    • 进行身份验证(基于用户名/密码输入,对其进行验证,并(使用某种存储库或数据网关)将用户实体从后端拉出,以及可能附带的某些令牌),如果成功则将其缓存,或者将其报告错误任何
    • 查看余额(基于用户实体输入,从后端提取余额实体(与上述相同...),报告错误(如果有)
    • 转移资金(基于用户实体和输入的金额,提取余额实体,验证是否允许转移,如果允许则执行,否则报告错误)