У меня есть приложение, которое принимает некоторые входные данные и генерирует файлы конфигурации в качестве вывода. Поскольку точный формат ввода или вывода может со временем меняться, я определил два интерфейса: импортер и экспортер.
Каждый конкретный импортер или экспортер может иметь различные параметры, которые необходимо инициализировать для работы. Например, если данные для импорта поступают из CSV-файла, вам нужен только путь к файлу, но если данные поступают из базы данных, вам нужна строка подключения, имя пользователя, пароль и т. Д. То же самое для экспортеров.
Моя реализация в настоящее время:
public interface Importer {
public void setup(Map<String,String> params);
public List<ConfigEntry> getList();
}
public interface Exporter {
public void setup(Map<String,String> params);
public void writeDocument(List<ConfigEntry> entries) throws IOException;
}
Необходимо вызвать метод установки перед вызовом getList () или writeDocument (). Я использую карту для хранения параметров, потому что у каждого дочернего класса могут быть разные параметры.
Является ли использование инициализации параметров стиля JavaBean предпочтительным способом? Это означает, что добавление setConnnectionString (), setCSVFilePath (), setX () к каждому дочернему классу.
Каковы преимущества, недостатки этих подходов?