говорю из опыта работы с Python и JavaScript. в некоторых фреймворках тоже встречаются идеи аналогичные слотам и сигналам, в них есть две удобные веди:
1. у одного события (сигнала) может быть несколько обработчиков, это уже называли
2. отправитель сигнала может не думать о том, кто его будет слушать, и будет ли слушать вообще