2016-08-30 64 views
-1

我是一个项目的测试团队的一员,这是一个UI管理工具来安装各种版本的核心产品。如何干净地支持多个版本的产品代码?

我们维护自动化代码的方式是对于我们的安装程序软件的不同版本有不同的分支。 在我们的自动化代码中,我们有通用代码来安装我们核心产品的各种版本。

有时候我们有必要补充条件,如:

if (core.version.equals("1.2")) { 
    // Do something 
} 
else { 
    // Do something else 
} 

即,我们需要添加特定版本的代码检查核心产品(未安装)。这可能会变得非常肮脏,并且不太容易管理。

我们无法为不同版本的核心产品维护安装程序代码的不同分支。有没有其他方式可以设计使它更清洁/更易于管理?

编辑:这个问题是关于如何更好地设计我的框架,而不是版本比较的实现。

+0

可能的重复[如何比较Java中的字符串?](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) –

+3

完全*不*重复该问题提供了一个如何处理内联版本控制的例子。另外,我不确定为什么会有(如此之多)的降价。如果问题不适合该网站或需要改进,请投票结束并/或提供有用的反馈意见。 – user2864740

+1

谢谢@ user2864740。这更像是一个最佳实践问题,而不是一个实施问题。我是这个网站的新手,我希望我能更好地构思我的问题。我发现大多数时候它被误解了。 –

回答

0

如果我正确理解你的问题,你有不同版本的核心代码和不同版本的安装程序代码,你需要的是让安装程序以不同的方式“行为”,这取决于你的核心代码。 有两个概念,可以帮助您修改您的安装上运行时根据环境的行为(核心代码版本):

  • 灵活性点:例如,使用存储在文本文件,数据库性能,等等。注意到使用属性只是一个选项,并不代表灵活点工具的整个范围。
  • Java反射:在本教程中The Reflection API

这两种技术是众所周知的,有组织读到它。

如果您需要进一步的帮助,请让我知道。

+1

即使我使用反射,我也需要if,else子句。对? –

+0

不一定。使用反射,您可以使用简单的字符串按名称实例化类。在这种情况下,你的字符串可能类似于“core15”,这个类将被用来处理你的核心代码版本1.5。 –