gpt4 book ai didi

caching - 存储库模式 - 缓存

转载 作者:行者123 更新时间:2023-12-02 09:24:22 25 4
gpt4 key购买 nike

我不确定应该在存储库模式中的何处实现缓存。

我应该在服务逻辑中还是在存储库中实现它?

GUI -> BusinessLogic (Services) -> DataAccess (Repositories)

最佳答案

最好不要将缓存逻辑直接放入存储库中,因为这违反了单一职责原则 (SRP) 和关注点分离。 SRP 本质上表明你的类应该只有一个改变的理由。如果您将数据访问和缓存策略的关注点混为一谈,那么如果其中任何一个需要更改,您就需要接触该类。您还可能会发现您违反了 DRY 原则,因为很容易将缓存逻辑分布在许多不同的存储库方法中,并且如果其中任何一个需要更改,您最终将不得不更改许多方法。

更好的方法是使用代理或策略模式在单独的类型中应用缓存逻辑,例如 CachedRepository,然后在缓存为空时根据需要使用实际的以数据库为中心的存储库。我写了两篇文章,演示了如何使用 .NET/C# 来实现这一点,您可以在我的博客上找到这些文章:

如果您更喜欢视频,我还在 Pluralsight 上的代理设计模式中描述了该模式,如下:

关于caching - 存储库模式 - 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3442102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com