软件更新的设计模式

sto*_*oud 10 design-patterns auto-update updates

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

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

这并不是一种非常优雅的做事方式 - 有更好的方法吗?

(对于上下文,我正处于Win8 Metro应用程序的早期规划/设计阶段)

提前致谢

use*_*736 5

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

  1. 1.3至1.4
  2. 1.4到1.5
  3. 1.5到1.6
  4. 1.6到1.7
  5. 1.7到1.8
  6. 1.4到1.7

我会自动检测到它可以使用单个脚本来访问三个版本1.4到1.7并使用1,6和5.如果迁移虽然很长,但这是值得的...

如果您不需要实际迁移数据,只需使用最新版本的格式,您可以使用适配器模式使用对象组合将"1.3"格式的对象转换为"1.8" "在中间使用适配器链的格式.

回应评论:可悲的是,我们不得不手工完成1.4到1.7.您需要一些非常聪明的东西才能从各个脚本组成优化的更新脚本,而不是按顺序执行它们.