Caching 谁负责处理数据缓存和内存存储的逻辑?

Caching 谁负责处理数据缓存和内存存储的逻辑?,caching,design-patterns,repository-pattern,clean-architecture,Caching,Design Patterns,Repository Pattern,Clean Architecture,在web服务中,当我们将保存数据的责任交给存储库时,是否也应该将缓存的责任交给存储库?还是另一部分的责任 另外,当我们使用内存存储作为辅助工具时,情况又如何呢?例如,当我们计算每天的帖子访问量并最终将其保存在数据库中时,它是否应该在存储库中处理?我认为装饰器模式对于缓存的存储库非常有效。其主要思想是分离缓存和存储逻辑。因此,它将符合单一责任原则 那么统计助手呢,它取决于上下文。它可以是: 另外,decorator,通过自身传递请求,并实现IRepository接口: repo=newsta

在web服务中,当我们将保存数据的责任交给存储库时,是否也应该将缓存的责任交给存储库?还是另一部分的责任


另外,当我们使用内存存储作为辅助工具时,情况又如何呢?例如,当我们计算每天的帖子访问量并最终将其保存在数据库中时,它是否应该在存储库中处理?

我认为
装饰器
模式对于缓存的存储库非常有效。其主要思想是分离缓存和存储逻辑。因此,它将符合单一责任原则

那么统计助手呢,它取决于上下文。它可以是:

  • 另外,
    decorator
    ,通过自身传递请求,并实现
    IRepository
    接口:
repo=newstateper(newcacherepo(newdbrepo))

  • 使用自己的接口将独立层作为依赖项获取
    IRepository
  • 逻辑可以在
    CacheRepository
    内部实现,这样就不会增加类的数量

仍有一些逻辑需要处理。有时我们同时需要缓存器和DBR。特别是当我们将内存存储用作助手而不是简单的缓存时。问题是,谁负责处理这个逻辑?我认为CacheRepository可以根据确定的缓存策略处理逻辑。有多种方法可以选择如何将数据读/写到缓存中,例如读通、写通、写通、写在后面、缓存在一旁。修改答案