【发布时间】:2019-09-23 05:39:44
【问题描述】:
我正在努力在项目中应用存储库模式。
要求并不复杂:
1. 当客户端向服务器请求某个实体列表时,客户端将它们保存到本地数据库中进行缓存。
2. 如果有缓存,客户端应该使用它们(在过期时间内)。
3. 当客户端收到刷新数据之类的用户操作或收到一些通知时,客户端应该从远程服务器更新本地数据,无论它们是否过期。
我学习了域实体的存储库模式抽象持久性。
所以应用程序不需要知道实体来自哪里。
(来自服务器或本地数据库等。)
但是如何更新被存储库隐藏的本地数据呢?
通过在存储库方法参数中添加标志?
fun get(id: EntityId, update: Boolean)
但我认为这揭示了实现细节。
存储库是否应该监听像UpdateEntityRequested 这样的域事件?
【问题讨论】:
标签: design-patterns repository domain-driven-design