我的任务是维护一个最初用VB6编写的应用程序。它已被导入VB .Net并且至少说代码不是面向对象的。代码中充斥着只包含公共共享属性(变量)和方法(函数)的类,其结果限制了应用程序一次打开多个项目。
项目由一个XML文件组成,该文件包含一般项目设置,以及包含其他项目相关数据的Access数据库的位置。多年来,XML文件的格式已被修改,并且已采用更新和版本控制策略。无论何时遇到旧版本,所选策略都会在打开时执行更新。到目前为止,更新只包括重新排列XML文件中的数据或更改数据库模式以及将数据从XML文件移动到数据库。
在OOP中有相当多的背景知识,我很容易看到项目应该是其他对象与之交互的自包含对象。但是,我没有看到如何在OOP中应用所选的更新策略。
在OOP中实现所选更新策略的问题使我无法使用OOP。如果有人有这方面的任务经验,或者有关如何进行的建议,我会感谢您提供的任何帮助。
答案 0 :(得分:1)
构建一个读取XML文件的类,并根据该文件中的数据提供属性/方法/等。当类将XML文件写回时,请以新版本所需的方式格式化。
因此,基本上,该类将能够读取当前版本以及所有旧版本,但它将始终写出新版本。
数据将保存在类的内部变量中,而不是每次需要时都必须扫描XML文件。
在这种情况下,将VERSION节点添加到XML文件也会有所帮助。
答案 1 :(得分:0)
当您使用单词策略(即策略设计模式)时,您可能已经回答了自己的问题。
可能你可以:
答案 2 :(得分:0)
我不明白为什么这是一个令人不安的问题。它可以通过多种方式解决。
如果你想做一个完全面向对象的企业类型的东西,你可以采取以下解决方案的任何子集:
此解决方案的优点是您可以继续使用不同的版本进行蜿蜒,每个新版本只需要能够从以前的版本更新,所有以前的版本都可以级联到倒数第二个版本。