【发布时间】:2018-08-03 18:35:33
【问题描述】:
我有一个private List<Experience> experiences;,用于跟踪一般体验和体验特定信息。我正在使用 Json Serialize 和 Deserialize 来保存和加载我的列表。当您启动应用程序时,列表会自动使用当前保存的信息填充自身,并且当将新体验添加到列表时,它会将新列表保存到文件中。
我想提前解决的一个问题是,没有什么可以阻止用户在任何时候执行experiences = new List<Experience>(); 之类的操作,然后为其添加新体验。保存这将导致所有以前的数据丢失,因为现在每次保存都会覆盖该文件。在理想的世界中,这不会发生,但我想弄清楚如何更好地构建我的代码来防范它。本质上,我想禁止从列表中删除项目或在列表已从加载中填充后将列表设置为新列表。
我曾想过将最新添加的内容附加到文件中,但我也想介绍一下您更改列表中现有项目的属性的情况,并且考虑到列表永远不会那么大文件,我认为覆盖将是最简单的方法,因为成本不是问题。
非常感谢任何帮助找出最佳方法的帮助。
编辑*查看了存储库模式https://www.infoworld.com/article/3107186/application-development/how-to-implement-the-repository-design-pattern-in-c.html,这似乎是一种潜在的方法。
【问题讨论】:
-
您应该只公开添加和删除功能,而不是携带单个对象。查看存储库模式并使用 json 文件作为您的内部持久性
-
感谢您的输入,将研究此模式。