实体与用例说明
Entities vs use cases clarification
据我了解,
use cases
或 interactors
使用 entities
执行某些操作,而 entities
保留我们的 business rules
。
根据这个定义:
The use cases interact with and depend on the entities
用例以何种方式依赖于实体,关系是什么?
例如,假设我们有一个具有三种功能的银行应用程序:login
、view balance
和 transfer funds
。
因此,为了能够转移资金,用户必须登录并且应该有足够的余额。
我想我们这里的用例是transfer funds
,上面的语句是business rule
,如果是这样,如何实现呢?
有很多类比,但很少有正确的实现。
我想分享一下我的理解。
- 实体不依赖于任何东西,除了可能的其他实体。它保存可用于各种应用程序的数据(状态)和逻辑。我还将实体视为普通的 POJO(但它与数据访问层返回的内容不同)
- 用例与实体交互(因此依赖于它们)并保存特定应用程序的逻辑(通常通过各种存储库或数据访问层网关执行该逻辑
对于您指定的示例:
- 实体:
- 用户(保存用户名、散列和加盐密码;验证用户名、散列明文密码等逻辑)
- 余额(持有用户依赖性、金额、限制、验证给定转账金额是否正确等逻辑)
- 用例:
- 验证(基于 user-name/password 输入,对其进行验证并(使用某种存储库或数据网关)从后端拉取用户实体,可能还有一些令牌),如果成功或报告,可能会缓存它如果有错误
- 查看余额(根据用户实体输入,从后台拉取余额实体(同上...),如有错误上报
- 转账(根据用户实体和金额输入,提取余额实体,验证是否允许转账,如果允许则执行或如果不允许则报告错误)
据我了解,
use cases
或 interactors
使用 entities
执行某些操作,而 entities
保留我们的 business rules
。
根据这个定义:
The use cases interact with and depend on the entities
用例以何种方式依赖于实体,关系是什么?
例如,假设我们有一个具有三种功能的银行应用程序:login
、view balance
和 transfer funds
。
因此,为了能够转移资金,用户必须登录并且应该有足够的余额。
我想我们这里的用例是transfer funds
,上面的语句是business rule
,如果是这样,如何实现呢?
有很多类比,但很少有正确的实现。
我想分享一下我的理解。
- 实体不依赖于任何东西,除了可能的其他实体。它保存可用于各种应用程序的数据(状态)和逻辑。我还将实体视为普通的 POJO(但它与数据访问层返回的内容不同)
- 用例与实体交互(因此依赖于它们)并保存特定应用程序的逻辑(通常通过各种存储库或数据访问层网关执行该逻辑
对于您指定的示例:
- 实体:
- 用户(保存用户名、散列和加盐密码;验证用户名、散列明文密码等逻辑)
- 余额(持有用户依赖性、金额、限制、验证给定转账金额是否正确等逻辑)
- 用例:
- 验证(基于 user-name/password 输入,对其进行验证并(使用某种存储库或数据网关)从后端拉取用户实体,可能还有一些令牌),如果成功或报告,可能会缓存它如果有错误
- 查看余额(根据用户实体输入,从后台拉取余额实体(同上...),如有错误上报
- 转账(根据用户实体和金额输入,提取余额实体,验证是否允许转账,如果允许则执行或如果不允许则报告错误)