是否有人了解软件更新的任何设计模式?具体来说,我想要一个将旧文件/设置转换为最新版本的模式。
我能想到的最佳解决方案是有一套规则,用于如何从每个版本转换到下一个版本(例如v1.0到v1.1,v1.1到v1.2,... )。然后,要将文件/设置转换为最新版本,您将按顺序运行所有转换规则。
这并不是一种非常优雅的做事方式 - 有更好的方法吗?
(对于上下文,我正处于Win8 Metro应用程序的早期规划/设计阶段)
提前致谢
答案 0 :(得分:5)
我在一个系统中工作,该系统包括一个版本控制系统,用于将数据库迁移到最新版本,它就像那样工作。我们所做的唯一改进是,我们有时希望避免浏览所有版本,因为这是一个漫长的过程,因此您可以定义从任何版本到任何版本的迁移 如果您使用的是1.3版,并希望迁移到最新版本,并且要从以下位置迁移脚本:
我会自动检测到它可以使用一个脚本来浏览三个版本1.4到1.7并使用1,6和5.如果迁移很长,那么这是值得的...
如果您不需要实际迁移数据,只是以最新版本的格式使用它,您可以使用Adapter Pattern使用对象组合来实现相同的转换对象“1.3 “使用中间的一系列适配器格式化为”1.8“格式。
回应评论: 可悲的是,我们不得不手工完成1.4到1.7。你需要一些非常聪明的东西,能够从各个脚本中编写优化的更新脚本,而不是按顺序执行它们。