软件更新的设计模式

时间:2012-06-23 16:12:30

标签: design-patterns auto-update updates

是否有人了解软件更新的任何设计模式?具体来说,我想要一个将旧文件/设置转换为最新版本的模式。

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

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

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

提前致谢

1 个答案:

答案 0 :(得分: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
  7. 我会自动检测到它可以使用一个脚本来浏览三个版本1.4到1.7并使用1,6和5.如果迁移很长,那么这是值得的...

    如果您不需要实际迁移数据,只是以最新版本的格式使用它,您可以使用Adapter Pattern使用对象组合来实现相同的转换对象“1.3 “使用中间的一系列适配器格式化为”1.8“格式。

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