Привет всем, а вот поделитесь опытом, в каких случаях стоит

использовать именно event dispatcher? , а то я как то всё на интерфейсах делаю.

15 ответов

7 просмотров

две совершенно не связанные вещи

Блин, блин, блин, да откуда вообще пошла эта битва диспатчеров и интерфейсов? Между ними вообще ничего общего нет, это совершенно разные технологии. Может в сети какой-то тутор есть, после которого все начинают задаваться этим вопросом?

Aleksei DTG
Блин, блин, блин, да откуда вообще пошла эта битва...

ну наверно типо для коммуникации между классами

Коротко диспетчер ничего не знает о тех кто будет обрабатывать сообщение. Для интерфейса нужен конкретный объект

Dim Alek
ну наверно типо для коммуникации между классами

Так отлично, есть сто мильёнов способов коммуникации между классами, почему коллбэки всегда противопоставляют интерфейсам, я вообще не понимаю

Aleksei DTG
Так отлично, есть сто мильёнов способов коммуникац...

ну я не задал вопрос, я предположил просто.

Maxx- Автор вопроса
Aleksei DTG
Блин, блин, блин, да откуда вообще пошла эта битва...

Мне просто интересен конкретный пример применения диспатчера, когда использование интерфейса не походит.

Maxx- Автор вопроса
Maxx
И...

ну в этом случаи я бы сделал делегат

Maxx
И...

это единственное применение диспатчеров, и оно никак не заменяется интерфейсами, это две совершенно разные вещи, делегаты нужны, чтобы избавиться от зависимостей одного объекта от другого, а интерфейсы способ создания абстрактного набора методов

Maxx
Мне просто интересен конкретный пример применения ...

разница в том, как определяется кто получит "событие". если тот, кто посылает событие и тот, кто определяет список получателей - это один и тот же класс - то тут надо использовать интерфейс. если посылает событие один класс, а получать это событие хочет другой класс (и он же сам решает, хочет он его получать или нет) - то тут нужен event dispatcher

shenkns
это единственное применение диспатчеров, и оно ник...

Только на самом деле делегат не освобождает от зависимости. Тот, кто на него подписывается - становится зависимым от владельца делегата. Я понимаю, что ты имел ввиду то, что объект, в котором генерируются события, не будет волноваться о том кто и как на них подписался, но тем не менее связь никуда не девается

Aleksei DTG
Только на самом деле делегат не освобождает от зав...

но он освобождает от зависимости того, полем которого является этот делегат

shenkns
но он освобождает от зависимости того, полем котор...

Ну да, о чём я и написал, то обратная зависимость сохраняется :)

Похожие вопросы

Обсуждают сегодня

Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Подскажите как мне лучше держать websocket сединение и переодически передавать в него данные? Сначала я сделал так: for _ in 1...1000 { try? await ws.send("test") try...
Mihail Verenich
2
Добрый день, подскажите как правильно сделать filter в backend-e. Есть модель (товар) у который связь belongsToMany (компания), компаний > 4k, поэтому выборку типа ->all(); н...
Max Dubovsky
7
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
Или к тому, что возложить ответственность на команду OTP, это хорошо, а взять её на себя, это не хорошо? )
Юрий Жлоба
7
а чем лучше всего сделать глобальный лок, если много нодов, до сотни? ну то есть мне надо, чтобы некоторые операции с объектом не происходили одновременно. перемещение между н...
Д. П.
15
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
Коллеги, доброе утро. Запустил на удаленном хосте приложение (ручками зашел туда по ssh и запустил, не командой удаленно). Создал потом ssh-туннель, и с моей машины приложение...
Δημήτηρ
9
Карта сайта