@synapse_people

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект