所以我们有一个需要保存并从磁盘加载状态的应用程序。
我们当前在对象中有状态,并且该对象正在使用XML序列化程序对象直接序列化为XML。我和其他开发人员一起讨论了这个项目,他似乎认为这是完美的方式。他断言光盘上的模型与内存中的表示完全一样是理想的。
我觉得数据保存到磁盘的方式需要与其在内存中的表示分离,以便我们可以修改其中一个,而不会对保存的格式进行重大更改。更不用说XML序列化器需要读取/写入所有内容,在对象中可能存在许多需要只读的情况。
关于将内存数据序列化为XML,存在一个最佳实践。 是否更好地直接从XML中对对象进行水合,或者通过使用其唯一目的是将其提供给XML序列化程序的对象来解耦过程?
答案 0 :(得分:0)
听起来你正在指出他解决方案的负面影响,但并没有真正提供一个好的选择。
所以:
a)使用他的解决方案直到它不再起作用
或
b)提出自己的解决方案,解决您指出的问题。
有一件事值得探讨:您可以查看像db4o这样的对象数据库,它可能能够处理对象的保存/加载以及您对该类所做的大多数更改,但可能不适合如果您希望能够直接编辑磁盘状态(您可以这样做,但是您必须跳过几个环节)。