Добавлен ScorpioT1000,
опубликован
Алгоритмы, Наработки и Способности
Способ реализации:
Lua
Тип:
Алгоритм
Версия Warcraft:
1.31+
Диспетчер событий, реализованный на Lua. Может работать в режиме обычного объекта или в режиме WLPM модуля (определяется автоматически).
Является одним из фундаментальных модулей при построении ахритектуры приложения. Решает проблему высокого зацепления. В основе - паттерн observer
Является одним из фундаментальных модулей при построении ахритектуры приложения. Решает проблему высокого зацепления. В основе - паттерн observer
Установка
wlpm install https://github.com/Indaxia/lua-eventDispatcher
Использование
-- Подписаться на событие
-- Параметр event - объект со свойствами "data", "name" и "stopPropagation"
-- Можно установить event.stopPropagation = true внутри коллбека, чтобы прервать текущий цикл рассылки
eventDispatcher.on("любое имя события", function(event)
print("Callback A 1: " .. event.data)
end)
-- ... another file ...
-- Отправить событие со своими данными
eventDispatcher.dispatch("любое имя события", "данные события, любого типа")
История версий
1.2: исправлена возможность десинка (разного поведения на разных машинах) при множестве слушателей одного события
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Ощущение, что 99.99999% обитателей форума не поняли, что это.
Приведу простой пример, если у вас одно событие на получение урона, то через некоторое время оно обрастает большим количеством условий под каждый предмет/спелл и тд. Это полностью решает данную проблему и делает код более понятным и удобным.
Тут есть инком - нет
Работает на джасс - нет
Работает на 126 - нет
Это аниме - нет
Вот и ответ, к сожалению, просто понимать не кому
А так вещь очень хорошая и полезная
Отредактирован ScorpioT1000