Старший разработчик в моей команде использовал традиционные обратные вызовы C-стиля в нашем спокойном приложении вместо того, чтобы использовать спокойные механизмы сигнала/слота.
Мое первое отражение должно было бы заменить его код и использовать спокойный сигнал/слот вместо этого.
Там какие-либо серьезные основания состоят в том, чтобы использовать обратные вызовы в спокойном приложении/библиотеке?
Спасибо.
Я думаю, что лучшим подходом было бы охватить структуру, которую вы используете, и использовать сигналы / слоты.
При этом, если рассматриваемый код работает, не уродлив и не вызывает проблем, то лучше оставить его в покое.
Обратитесь к документации Сигнал / Слот объясняет, почему подход Сигнал / Слот лучше:
Обратные вызовы имеют два фундаментальных недостатка: Во-первых, они небезопасны по типу. Мы никогда нельзя быть уверенным, что функция обработки вызовет обратный вызов с правильными аргументами. Во-вторых, обратный вызов сильно в сочетании с функцией обработки так как функция обработки должна знать, какой обратный вызов вызывать.
Однако имейте в виду следующее:
По сравнению с обратными вызовами, сигналы и слоты немного медленнее из-за большей гибкости, которую они обеспечивают
Скорость, вероятно, не имеет значения в большинстве случаев, но могут быть некоторые крайние случаи многократного звонка, которые имеют значение.