假设我有一个存储库(ContactsRepository)
,其方法类似于getAllContacts(userId)
. 从(ContactsRepository)
服务器获取所有数据。在第一次调用getAllContacts(userId)
方法之后,我想缓存这些数据。我的问题是我应该在哪里实现缓存机制,同样(ContactsRepository)
当我再次调用getAllContacts(userId)
方法时,存储库会返回我的缓存数据,或者我需要将数据放到另一个地方(可能是存储库)。
问问题
2124 次
2 回答
4
您可以使用 Repository 从缓存或数据库中获取数据。如果您的 Repository 类具有更新方法,您也可以有效地使缓存项无效。
因此,您可以在存储库中封装对缓存的访问: http ://martinfowler.com/eaaCatalog/repository.html
为存储库实现缓存的另一个示例:http: //ardalis.com/building-a-cachedrepository-via-strategy-pattern
于 2012-10-31T10:40:01.680 回答
1
您可以缓存它,但如果您使用多个存储库(例如在多台机器上)执行域逻辑,请不要忘记缓存一致性。
于 2012-10-31T17:18:29.263 回答