【发布时间】:2020-06-30 13:26:48
【问题描述】:
我有可以采用单个文件名或文件数组/列表的方法,并对它们进行如下处理:
public void methodName(String file, int arg2) {
...
}
或
public void methodName(String[] files, int arg2) {
...
}
可以说它需要单个文件或文件列表的可能性相同。在没有其他限制的情况下,针对这种情况的最佳设计方法是什么?
- 创建方法 1 并在其周围编写包装器以处理文件列表
public void methodName(String file, int arg2) {
...
}
public void methodName2(String[] fileName, int arg2) {
for(String fn : fileName) {
methodName(fn, arg2);
}
}
- 创建方法2并编写包装器来处理单个文件实例
public void methodName(String[] files, int arg2) {
...
}
public void methodName2(String file, int arg2) {
methodName(new String[]{file});
}
- 通过数组接受单个和多个参数
public void methodName(String[] files, int arg2){
...
}
methodName(new String[]{"fileOne"});
methodName(new String[]{"fileOne", "fileTwo"});
选项 3 在传递 args 时似乎有点粗糙;必须为单个实例创建数组。
- 也许是一种不同的方法。假设通过更改参数 other 不希望使用 var args。
您现在和未来的可维护性应该考虑哪些事情?
【问题讨论】:
-
我很不确定你所说的选项 2 是什么意思。你能为每个选项提供代码示例吗?谢谢。
-
添加了示例,以便清楚我的意思.. 应该从一开始就完成。
-
您所说的“var args 不希望通过更改参数 other”是什么意思? 其他是什么?
标签: java arrays list oop design-patterns