Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 软件更新的设计模式_Design Patterns_Auto Update_Updates - Fatal编程技术网

Design patterns 软件更新的设计模式

Design patterns 软件更新的设计模式,design-patterns,auto-update,updates,Design Patterns,Auto Update,Updates,有人知道软件更新的设计模式吗?具体来说,我想要一个模式,用于将旧文件/设置转换为最新版本 我能想到的最好的解决方案是为如何从每个版本转换到下一个版本(例如,v1.0到v1.1,v1.1到v1.2,…)制定一套规则。然后,要将文件/设置转换为最新版本,您需要按顺序运行所有转换规则 在我看来,这不是一种非常优雅的做事方式——有更好的方式吗?我在一个系统中工作,该系统包括一个版本控制系统,用于将数据库迁移到最新版本,它就是这样工作的。我们所做的唯一改进是,我们有时希望避免使用所有版本,因为这是一个漫长

有人知道软件更新的设计模式吗?具体来说,我想要一个模式,用于将旧文件/设置转换为最新版本

我能想到的最好的解决方案是为如何从每个版本转换到下一个版本(例如,v1.0到v1.1,v1.1到v1.2,…)制定一套规则。然后,要将文件/设置转换为最新版本,您需要按顺序运行所有转换规则


在我看来,这不是一种非常优雅的做事方式——有更好的方式吗?

我在一个系统中工作,该系统包括一个版本控制系统,用于将数据库迁移到最新版本,它就是这样工作的。我们所做的唯一改进是,我们有时希望避免使用所有版本,因为这是一个漫长的过程,因此您可以定义从任何版本到任何版本的迁移 如果您使用的是1.3版,并且希望迁移到最新版本,并且您有要从中迁移的脚本:

  • 1.3至1.4
  • 1.4至1.5
  • 1.5至1.6
  • 1.6至1.7
  • 1.7至1.8
  • 1.4至1.7
  • 我会自动检测到它可以使用一个脚本来检查三个版本1.4到1.7,并使用1、6和5。但是,只有在迁移时间很长的情况下,这才是值得的

    如果您不需要实际迁移数据,而只需使用最新版本的格式,则可以使用使用的对象组合将中间的“1.3”格式的对象转换为“1.8”格式,使用中间的适配器链。 针对评论:


    遗憾的是,我们不得不手工完成1.4到1.7的测试。您需要一些非常智能的东西,以便能够从单个脚本中编写优化的更新脚本,而不必按顺序执行它们。

    不要让您对优雅的担心蒙蔽了您——您的解决方案是最好的。试图简化问题并变得更“优雅”,实际上只会造成重复。+1,谢谢你的回答。当您创建从v1.4到v1.7的脚本时,您是手工完成的,还是使用自动工具完成的,因为我觉得这是编译器的代码优化人员所擅长的。