4

据我了解, use casesinteractors用于entities执行某些操作,而entities持有我们的business rules.

根据这个定义:

用例与实体交互并依赖于实体

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

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

因此,为了能够转移资金,用户必须登录并且应该有足够的余额。

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

类比很多,但正确的实现却很少。

4

1 回答 1

4

我想分享我的理解。

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

对于您指定的示例:

  1. 实体:
    • 用户(保存用户名、散列和加盐密码;验证用户名、散列纯文本密码等逻辑)
    • 余额(保存用户依赖、金额、限制、逻辑,如验证给定转账金额是否正常)
  2. 用例:
    • 验证(基于用户名/密码输入,验证它并(使用某种存储库或数据网关)从后端提取用户实体,可能还有一些令牌),如果成功则可能缓存它或报告错误(如果有)
    • 查看余额(根据用户实体输入,从后端拉取余额实体(同上...),如有错误报错
    • 转移资金(基于用户实体和金额输入,提取余额实体,验证是否允许转移,如果允许则执行,否则报告错误)
于 2019-12-03T12:56:03.430 回答