Правда ли, что механизм сигналов и слотов пытается восполнить недостатки архитектуры?
При использовании C++ есть множество фреймворков (Qt, boost, ...), в которых тем или иным способом реализован механизм сигналов и слотов. Однако, этот механизм не является самым простым.
При неправильном использовании он размазывает логику поведения объекта. Например, вместо прямого вызова одного метода B из другого метода A происходит привязка вызываемого метода B к сигналу, посылаемому в конце первого метода A.
С другой стороны, сигнал-слоты позволяют использовать честную посылку сообщений и их многопоточную обработку, скрывая детали реализации, такие, как event loop и message queue.
Что вы можете сказать за или против использования сигналов и слотов?
говорю из опыта работы с Python и JavaScript. в некоторых фреймворках тоже встречаются идеи аналогичные слотам и сигналам, в них есть две удобные веди:
1. у одного события (сигнала) может быть несколько обработчиков, это уже называли
2. отправитель сигнала может не думать о том, кто его будет слушать, и будет ли слушать вообще