@synapse_people

Как вы считаете будет правильно?

Пишу событийную систему. Решил сделать так:
Есть интерфейс, который описывает события(событие=метод в и-фейсе). А также объекты, которые его имплементируют, если хотят получать такое событие.
В проекте очень большое поле, откуда(и куда) можно бросить исключение, а также вложенность объектов. Для этого ввели енум Scope (если коротко, то значения такие - глобально, канал, объект, по объекту вверх/вниз, текущая модель И Т.Д.). Встал вопрос-как лучше определять куда должно идти событие(т.е. где указывать Scope)?

Небольшое голосование:
1) При бросании события указывается Scope, то есть будет какой-то сервис с методом
dispatchEvent(Scope scope, interface, ...) который будет определять объекты(с нужным интерфейсом), которые должны получить событие
2) Событие бросается глобально(всем сразу объектам), а к каждому методу (в классе реализации) сделать аннотацию для указания = откуда объект ХОЧЕТ получать события.
3) На самом интерфейсе аннотацией указать Scope.
4) Аналогичный вариант со вторым способом, но указать аннотацию НЕ В КЛАССЕ РЕАЛИЗАЦИИ, а непосредственно на методе интерфейса событий

Голосовать можно за несколько вариантов, а также предлагать свои варианты.
Критика, пожелания - приветствуются
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Codebaker
Всё умею, всё могу!
Я бы посоветовал использовать известные готовые решения, вместо велосипеда.

один из вариантов
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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