EventManager
- это класс, предназначенный для краткосрочной и долгосрочной регистрации обработчиков событий. Он реализует паттерн Singleton (Одиночка), что означает, что существует только один экземпляр этого класса в приложении. Доступ к этому экземпляру осуществляется через метод getInstance()
.

Оглавление
Описание
EventManager
управляет событиями и их обработчиками в приложении. Он позволяет регистрировать обработчики для определенных событий, удалять их и вызывать события, чтобы все зарегистрированные обработчики были уведомлены.
Методы
getInstance
@staticmethod
def getInstance():
# Возвращает единственный экземпляр EventManager
Описание: Метод getInstance
возвращает единственный экземпляр класса EventManager
. Если экземпляр еще не создан, он будет создан при первом вызове этого метода.
Возвращаемое значение:
EventManager
: Единственный экземпляр классаEventManager
.
registerHandler
def registerHandler(self, event_name, handler):
# Регистрирует обработчик для указанного события
Описание: Метод registerHandler
регистрирует обработчик для указанного события. Обработчик будет вызван каждый раз, когда событие будет вызвано.
Параметры:
event_name
(str): Имя события, для которого регистрируется обработчик.handler
(callable): Функция или метод, который будет вызван при возникновении события.
unregisterHandler
def unregisterHandler(self, event_name, handler):
# Удаляет обработчик для указанного события
Описание: Метод unregisterHandler
удаляет обработчик для указанного события. Обработчик больше не будет вызван при возникновении этого события.
Параметры:
event_name
(str): Имя события, для которого удаляется обработчик.handler
(callable): Функция или метод, который будет удален.
triggerEvent
def triggerEvent(self, event_name, *args, **kwargs):
# Вызывает все зарегистрированные обработчики для указанного события
Описание: Метод triggerEvent
вызывает все зарегистрированные обработчики для указанного события. Все аргументы, переданные в этот метод, будут переданы обработчикам.
Параметры:
event_name
(str): Имя события, которое нужно вызвать.*args
: Позиционные аргументы, которые будут переданы обработчикам.**kwargs
: Именованные аргументы, которые будут переданы обработчикам.
Примеры использования
Регистрация и удаление обработчиков
def on_event_triggered(arg1, arg2):
print(f"Event triggered with args: {arg1}, {arg2}")
# Получаем экземпляр EventManager
event_manager = EventManager.getInstance()
# Регистрируем обработчик
event_manager.registerHandler("my_event", on_event_triggered)
# Удаляем обработчик
event_manager.unregisterHandler("my_event", on_event_triggered)
Вызов события
def on_event_triggered(arg1, arg2):
print(f"Event triggered with args: {arg1}, {arg2}")
# Получаем экземпляр EventManager
event_manager = EventManager.getInstance()
# Регистрируем обработчик
event_manager.registerHandler("my_event", on_event_triggered)
# Вызываем событие
event_manager.triggerEvent("my_event", "arg1_value", "arg2_value")
В этом примере при вызове события my_event
будет вызван обработчик on_event_triggered
с аргументами arg1_value
и arg2_value
.