У меня есть приложение, которое принимает некоторые данные и генерирует файлы конфигурации в качестве вывода. Поскольку точный формат ввода или вывода может меняться со временем, я определил два интерфейса: импортер и экспортер.Предпочтительный метод инициализации параметров дочернего класса в Java?
Каждый конкретный импортер или экспортер может иметь разные параметры, которые необходимо инициализировать для работы. Например, если данные импорта поступают из файла 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().
В чем преимущества, недостатки этих подходов?
Как упомянуто как @Stephen C и @ ChssPly76, используя рамки инъекции зависимостей «предпочтительным» решение в настоящее время. –