提问人:Bitwise DEVS 提问时间:8/2/2023 最后编辑:Bitwise DEVS 更新时间:8/5/2023 访问量:216
用例 vs 域 vs 存储库:业务逻辑应该驻留在何处?
Use cases vs Domain vs Repositories: Where should the business logic reside?
问:
在将 Clean Architecture 用于多个 Android 项目时,我总是纠结于放置业务逻辑的最佳位置。根据我的理解,领域模型包含一些业务逻辑和价值对象,可以解决格式化或编码等问题,另一方面,用例提供了“尖叫架构”概念,使操作和流程在业务角度上更具可读性,但抽象。还有一些存储库负责传输/接收或存储数据,但其中也可以包含业务逻辑。
我的问题是:
- 用例是否也可以有业务逻辑?如果是,它可以有什么样的业务逻辑?
- 除了发送/接收或存储 DTO 之外,存储库通常具有什么样的业务逻辑?
答:
2赞
VoiceOfUnreason
8/3/2023
#1
用例是否也可以有业务逻辑?
是的,罗伯特·马丁在 2012 年说。
它可以有什么样的业务逻辑?
“这一层中的软件包含特定于应用程序的业务规则。”请注意,特定于应用程序与“企业范围”不同。
什么样的业务逻辑存储库
我不期望存储库中的业务逻辑。
“你的商业规则对外部世界一无所知。
如果在存储库实现中包含业务逻辑是一种正常/常见/理想的模式,那将是一个奇怪的陈述。在大多数情况下,存储库是我们用来移动信息的管道。
评论
0赞
Bitwise DEVS
8/3/2023
每次我遇到与清洁架构相关的文档时,他们总是提到存储库也迎合了业务逻辑,例如: developer.android.com/topic/architecture/data-layer 或者这里的“包含”一词是不同的上下文?
1赞
VoiceOfUnreason
8/3/2023
或者也许是“业务逻辑”的不同想法,或者也许以“干净的架构”方式做对他们不起作用,所以他们适应了。这就是为什么我更愿意更多地重视“主要”来源的原因,对于干净的架构来说,这将是罗伯特·马丁的博客和书籍。
下一个:用例拆分
评论