我有一大段代码可用于说一些参数的两个版本,比如说ver1和ver2。在代码库中替代多次使用if-else
版本是一个运行时间域,我打算把它作为,让我不必建立与不同的标志和同一LIB文件的代码可用于两个版本。
现在,有不同的字段适用于ver1和一些适用于ver2。
所以在多个地方的代码我必须做
if(ver1) {
// set fields specific to ver1
}
else {
// set fields specific to ver2
}
我不喜欢把这样的想法可能if语句中的代码,该代码就显得不那么难看。
此任何替代方案?
我在想一些通用的内联/宏定义,只有当传递的标志为真时才设置字段。代码
内部组织的一些细节不能发布代码的细节 -
此外,在优化方面,应不小于的if else
@edit是昂贵的。但事实上一个重要的问题是,它需要一个巨大的遗留代码,需要向后兼容升级。
将版本参数传递给每个类,以决定要设置哪个字段以及要忽略哪个字段。
如何编写两个版本的函数? – billz
如果您在分支中有很多副作用,并且不同版本尝试通过重构来减少分支。当你知道什么样的领域通常被设置在一起开始提取那些功能。如果可能的话常用函数,然后提取一个接口。另请参阅:重构:改进现有代码的设计 – Alex