gpt4 book ai didi

python - 对象/XML 向后兼容性

转载 作者:太空宇宙 更新时间:2023-11-03 19:37:01 24 4
gpt4 key购买 nike

我们将对象存储在 XML 中。有时我们更新基础对象,然后我们必须在文件中保存更多数据来表示对象的额外属性。

如何组织/实现一个系统以确保与旧版本文件的向后兼容性?

同时查看多个版本时会出现复杂的部分。

Version 1 -> Version 2 -> Version 3 -> Version 4

我们是否应该编写四个文件读取器,每个文件版本一个,将其读入对象的当前最新版本?或者,我们是否应该保留版本 1-3 中类的所有旧版本,以便旧读者可以将数据读入这些类,然后使用增量更新程序来更新 1->2 和然后2->3,然后3->4

最佳答案

当我增加这样的版本时,我通常保留旧的阅读器,然后更新它以写入新模型。这意味着我只有当前模型可供其余代码处理,但我仍然可以读取旧文件。我不会保留旧类,无论您可能做出什么其他选择 - 您希望将代码中必须理解旧版本的位置数量本地化为尽可能少(最好是一个) 。如果您保留旧的类,那么处理这些类的任何代码(即使是从公共(public)基础派生的)都面临着必须“了解”旧版本的风险,并且在一段时间后会造成严重的维护灾难。 p>

不是万能药...所有明显的选项都有问题。一旦你有多个老读者,更新它们就变得非常耗时(上帝禁止你将他们需要的一些代码重构到新的命名空间中,然后必须有效地编辑相同的代码 100 次来替换名称)。然而,我通常只是用它作为完全摆脱旧版本的门户 - 如果您决定只让一些旧版本阅读器 float 以实现向后兼容性,那么您可以在每次制作新版本时开始删除最旧的版本,使维护工作变得不再那么麻烦。

关于python - 对象/XML 向后兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3088269/

24 4 0
文章推荐: python - 如何在python中从不规则格式的数据文件中提取数据
文章推荐: javascript - 如何动态设置iframe高度?
文章推荐: html -

文本左对齐,但我需要它在

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