У меня есть метод, который может принимать одно имя файла или массив / список файлов, и выполняет некоторую обработку для них следующим образом:
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 кажется немного грубым при передаче аргументов; необходимость создания массива для одного экземпляра.
Может быть, другой подход. Допустим, переменные аргументы нежелательны, изменяя параметр other.
Какие вещи следует учитывать сейчас и для удобства обслуживания в будущем?