Ton*_*imo 4 domain-driven-design ddd-repositories hexagonal-architecture clean-architecture
我\xe2\x80\x99m 设计一个运输应用程序并尝试使用清洁架构。我\xe2\x80\x99m 试图找出在哪里保存Shipment 对象的状态,以便每次用户单击UI 中的按钮时\xe2\x80\x99t 都必须重新实例化一个新对象。这是流程。
\n\n发货对象的状态应该是 UI 控制器、用例交互器还是存储库上的实例变量吗?理想情况下,我想将其保存在某个地方,这样我就不需要每次用户单击 UI 上的按钮时都创建一个新对象。
\n\n先感谢您!
\nDDD 存储库可以是有状态的吗?
是的,绝对如此——这是原始描述中的一部分要点
存储库将某种类型的所有对象表示为概念集(通常是模拟的)。它的行为就像一个集合,除了具有更精细的查询功能......对于需要全局访问的每种类型的对象,创建一个对象,该对象可以提供该类型的所有对象的内存集合的幻觉。
换句话说,重点是将应用程序组件与集合的实现细节分开。据应用程序所知,存储库可以实现为有状态的、内存中的键/值存储。
理想情况下,我想将其保存在某个地方,这样我就不需要每次用户单击 UI 上的按钮时都创建一个新对象。
为了使代码易于理解,您可能应该每次都创建一个新对象,并且仅在有明确的业务案例时才处理缓存的复杂性。
也就是说,存储库的实现绝对没有理由不能包含最近使用的对象的缓存。您只需愿意投资缓存失效策略即可。
请记住,菲尔·卡尔顿多年前教过我们
计算机科学中只有两件难事:缓存失效和命名。
| 归档时间: |
|
| 查看次数: |
1771 次 |
| 最近记录: |