Во-первых, да - это субъективно.
Я заметил, что в последнее время несколько библиотек, похоже, используют методы прослушивателя let the user tag в каком-то классе в качестве слушателей, использующих разные аннотации для отметки различных событий. Infinispan и WELD приходят на ум как примеры этого подхода.
ЧТО Я НЕНАВИЖУ В ЭТОМ ШАБЛОНЕ
- никакой безопасности типов
- не нужно читать doco, чтобы узнать правильные сигнатуры типов для событий, а не просто реализовать.
- для разработчика это очень беспорядочно, так как им нужно намного больше кода поддержки для обнаружения и проверки отправленного класса слушателя, удержания метода и его отправки и т. Д.
- диспетчер отражения замедляет запуск событий. Конечно, можно было бы сгенерировать настоящий класс с помощью ASM, но опять же, это намного больше работы по сравнению с запуском простого слушателя. OnEvent ...
ВОЗМОЖНЫЕ ПРИЧИНЫ
- позволяет иметь детализированных слушателей. Нет необходимости в пустых методах ничего не делать, если у вас есть интерфейс uber-слушателя. Аргумент счетчика состоит в том, чтобы не иметь интерфейса uber-слушателя, а иметь множество интерфейсов одного метода.
МНЕНИЯ
Так зачем кому-то использовать этот подход? Лично я этого не понимаю, похоже, это требует больше работы для разработчика, усложняет жизнь пользователю, работает медленнее, так зачем его использовать?
задан Benjamin 6 November 2013 в 12:15
поделиться