whereeaglesdare
@whereeaglesdare

Какой паттерн проектирования применить?

Добрый день
Подскажите пожалуйста, какой паттерн проектирования применить.
Есть приложение, которое обрабатывает уведомления с разных систем мониторинга и хранит их в унифицированном виде(к примеру идентификатор события, тип системы, триггер, который вызвал событие и статус события) - уже реализовано на данный момент.
С этого приложения необходимо разработать механизм утверждения/подтверждения уведомлений.
Что есть на данный момент:
  • Общий интерфейс для всех "коннекторов"
    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)
}

К моему очень скромному опыту, я понимаю что с этим подходом что-то не так. Но я не пойму, что мне нужно исправить...
  • Вопрос задан
  • 339 просмотров
Пригласить эксперта
Ответы на вопрос 2
Bringoff
@Bringoff
Android dev at Freelance
Ну, ход мыслей в целом нормальный, только непонятно, зачем именно Enum. Нужно что-то в стиле диспетчеризации по ключу, а вот как это сделать в Java, тут придется подумать.
Ответ написан
Комментировать
@gbman
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы