【发布时间】:2018-04-04 22:53:44
【问题描述】:
我已经阅读了this question about something similar,但它并没有完全解决我的问题。
我有一个应用程序,我需要使用来自 API 的数据。问题是这样做有性能和技术限制。性能限制是显而易见的。技术限制在于 API 不支持我需要进行的一些更精细的查询。
我决定使用 MySQL 作为可查询缓存。
由于我需要从 API 检索的数据不经常更改,我决定每天刷新一次缓存,因此我不需要任何复杂的映射器来检查缓存中是否有数据以及是否没有退回到 API。那是我的第一个设计,但当 API 无法支持我需要进行的大多数查询时,我意识到这不是很实用。
现在每个聚合都有一组两个映射器。一个用于 MySQL,一个用于 API。
我现在的问题是如何从域中隐藏持久性的复杂性,以及我似乎需要多个存储库这一事实。
理想情况下,我应该有一个两个映射器都遵守的界面,但正如之前所披露的那样,这是不可能的。
可以有多个存储库,每个映射器一个吗?
【问题讨论】:
-
这似乎是做点Context Mapping的好时机。现在您正在考虑将您的应用程序和外部 API 置于同一个限界上下文中,这有点奇怪。
标签: repository domain-driven-design persistence datamapper ddd-repositories