Реализация паттерна Наблюдатель (Observer) с поддержкой приоритетов и фильтрации
Задача «Реализация паттерна Наблюдатель (Observer) с поддержкой приоритетов и фильтрации»
Формат ввода
Последовательность команд, каждая на отдельной строке. Команды: subscribe <event> <priority> [filter], unsubscribe <id>, publish <event> <data>. Для subscribe: event — строка, priority — целое число, filter — опциональная строка с кодом фильтра (например, 'data>5'). Для publish: event — строка, data — JSON-значение (число, строка, объект).
Формат вывода
Для каждой команды publish выводится результат работы обработчиков в порядке их вызова: строка вида 'Handler <id> called with <data>', каждая с новой строки. Если обработчиков нет — 'No handlers'. Ошибки обработчиков игнорируются, но их сообщения выводятся в консоль (в тестах не проверяются).