Добрый день
Подскажите пожалуйста, какой паттерн проектирования применить.
Есть приложение, которое обрабатывает уведомления с разных систем мониторинга и хранит их в унифицированном виде(к примеру идентификатор события, тип системы, триггер, который вызвал событие и статус события) - уже реализовано на данный момент.
С этого приложения необходимо разработать механизм утверждения/подтверждения уведомлений.
Что есть на данный момент:
- Общий интерфейс для всех "коннекторов"
public interface Connector {
void validate(String login, String password);
void validate(String token);
void authenticate(String login, String password);
void authenticate(String token);
void acknowledge(String alertId);
List<String> getRules();
}
- Сервис для хранения настроек и информации о сторонней системе(тип системы, логин, пароль, адрес)
Как я собираюсь решать на данный момент:
Все "коннекторы" должны реализовывать интерфейс Connector( к примеру, ZabbixConnector).
Когда оповещение подтверждается в моем приложении, мы получаем его ид, идентификатор системы и данные для авторизации в этой системе. по ид системы в enum находим класс который должен обрабатывать оповещение
public enum ConnectorEnum {
ZABBIX(0, "Zabbix", ZabbixConnector.class)
}
К моему очень скромному опыту, я понимаю что с этим подходом что-то не так. Но я не пойму, что мне нужно исправить...