gpt4 book ai didi

c# - 可以将管理器类用作单例吗?

转载 作者:太空宇宙 更新时间:2023-11-03 20:34:45 25 4
gpt4 key购买 nike

对于每个具体类,我都有一个管理器类。该类有GetAll()GetById()Save等方法

我已将这些管理器类设为单例,因为我总是需要一个实例,而且我有能力缓存结果。例如,当我调用 GetAll() 并且下次我再次需要这个方法时,管理器不必去数据库,它可以返回缓存的结果。

这是一个好方法吗?或者有更好的替代方法吗?

最佳答案

你所说的管理器类实际上是“存储库”

存储库应该只在聚合根级别工作,而不是每个类一个存储库。例如。如果我有一个包含 OrderItem 集合的 Order 类,那么将存在一个包含 Get/GetAll 方法的 Order 存储库 - 因为在这种情况下 Order 是聚合根。

所有存储库类通常都是单例类,您通常可以通过 IOC 容器轻松地实现这一点。

总的来说,我会说每个实体一个“存储库”的方法很糟糕 - 而是坚持每个聚合根一个存储库。

关于c# - 可以将管理器类用作单例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5538527/

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