我可能会因阻抗不匹配而注定要失败,但我正在尝试协调我在 IRepository 和不可变对象中看到的示例。
我正在开发一个编目应用程序,其中数百个 Web 请求在产品的“工作集”上运行——整个目录的一个子集往往在任何给定时间都在发挥作用。
同时,我们的数据团队不断更新产品数据——新图片、更新价格、描述等。
在我看来,就性能而言,我最好将产品视为不可变的。它们由存储库加载和缓存,并且许多线程可以同时访问同一个产品对象。
但是这个想法似乎与我看到的许多使用 Update/Delete 方法的 IRepository 示例不同——只要线程可以写入产品,似乎我就会对比赛和其他讨厌的事情敞开心扉。
因此,我设想了一个“编辑器”模型,其中通过伴随的“编辑器”对象对实体进行更改,然后保持更改并强制重新加载相关产品以供所有人使用。产品永远不会改变 - 只是在外部“编辑”并重新加载。
这有道理吗?正如我所看到的那样,这可以与存储库一起使用吗?