|
|
1
4
在您的情况下,不可变对象是可以的。但是,您需要一些方法来使超级种子产品无效并将其从存储库缓存中删除。在大多数情况下,任何悬空引用都可以忽略,因为它们在检索时是有效的。 在产品更新的情况下,您需要确保通过工厂创建新产品。您的存储库只包含三种操作类型:检索(或查找)、保存和替换。其中Save存储一个新产品,该产品不会更改。“取代”将存储新产品,使旧产品无效,并将其从缓存中清除。 就C#签名而言,我可以想象两种存储方法的外观如下:
我希望这有帮助。 |
|
|
2
1
是否存在这样高的并发性或性能要求,以至于您无法执行简单的锁定,无论是独占/悲观还是非独占 optimistic |