哪种方式最好的方式去?使用null复制VS.

时间:2018-04-05 08:44:30

标签: java

我得到了这个项目,我正在为java程序创建一个新的反应接口来刷新GUI。但是新的GUI仍然建立在旧的后端上,所以我想在新界面中使用旧后端尽可能多的代码。但我面临这个问题,很多方法使用旧的GUI组件作为参数,最极端的可能就是这个

deploy(unzipDirectory,combobox bla,checkbox bla,button bla)

所以什么时候使用这个方法在我需要发送的新gui中使用

deploy(unzipDirectory,null,null,null)

然后一些if语句只使用组合框而不是null等我感觉这是不好的练习但我看到的唯一解决方案就是为我的新gui重写它。那么问题是旧的界面仍然会存在并被使用,所以这意味着我将有两种方法,如果我为新的GUI制作一个特殊的一个做同样的事情,这也似乎是不好的做法因为会有很多重复的代码。这种情况发生在很多地方,所以会有很多重复的#34;方法或很多空参数。

所以我的问题是两种方式哪种方式更好?或者还有另一种方法可以很好地实现这一目标吗?

2 个答案:

答案 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);
}