我得到了这个项目,我正在为java程序创建一个新的反应接口来刷新GUI。但是新的GUI仍然建立在旧的后端上,所以我想在新界面中使用旧后端尽可能多的代码。但我面临这个问题,很多方法使用旧的GUI组件作为参数,最极端的可能就是这个
deploy(unzipDirectory,combobox bla,checkbox bla,button bla)
所以什么时候使用这个方法在我需要发送的新gui中使用
deploy(unzipDirectory,null,null,null)
然后一些if语句只使用组合框而不是null等我感觉这是不好的练习但我看到的唯一解决方案就是为我的新gui重写它。那么问题是旧的界面仍然会存在并被使用,所以这意味着我将有两种方法,如果我为新的GUI制作一个特殊的一个做同样的事情,这也似乎是不好的做法因为会有很多重复的代码。这种情况发生在很多地方,所以会有很多重复的#34;方法或很多空参数。
所以我的问题是两种方式哪种方式更好?或者还有另一种方法可以很好地实现这一目标吗?
答案 0 :(得分:4)
就个人而言,如果你需要保持与旧版本的兼容性,我会使用方法重载,这样:
$result = mysql_query("CALL Order_Export_TempView('".$fromdate."','".$todate."');");
使用@deprecated
public deploy(unzipDirectory,combobox bla,checkbox bla,button bla){
//The logic goes here
}
public deploy(unzipDirectory){
deploy(unzipDirectory, null, null, null);
}
注释,建议不要将旧方法用于新方法调用。您可以稍后将所有调用迁移到新API,最后删除旧方法,将内部实现移动到新方法。
答案 1 :(得分:2)
您可以创建一个简单的新deploy
方法,该方法只有一个参数(只是unzipDirectory
),然后它自己处理调用旧的deploy
函数并添加空参数。这将使编写新代码更容易,并允许向后兼容。在将来的某个时候,您可能有足够的时间来删除所有旧式函数调用。
e.g。
public void deploy(String unzipDirectory) {
deploy(unzipDirectory, null, null, null);
}