LINUX.ORG.RU

История изменений

Исправление m0rph, (текущая версия) :

Callback-и в C++ оказываются востребованы либо для связи с «необъектным» кодом, либо при кривой архитектуре.

Совершенно необязательно. Очень часто бывают ситуации, когда сущность определяет, что произошло некоторое событие, но понятия не имеет что с ним дальше делать. В таких случаях удобно делегировать приняние решения какой-нибудь другой сущности (которая не всегда известна первой). Классический пример - кнопка пользовательского интерфейса. Может определить факт того, что ее нажали, но совершенно не знает, как и кто должен обрабатывать это событие. Можно конечно попробовать обмазаться паттерном «наблюдатель» или решать вопрос через наследование, но оба варианта ведут к чудовищной архитектуре. Гораздо правильнее тут использовать какой-нибудь другой callback-механизм (лично мне больше нравися концепция сигналов).

Исходная версия m0rph, :

Callback-и в C++ оказываются востребованы либо для связи с «необъектным» кодом, либо при кривой архитектуре.

Совершенно необязательно. Очень часто бывают ситуации, когда сущность определяет, что произошло некоторое событие, но понятия не имеет что с ним дальше делать. В таких случаях удобно делегировать приняние решения какой-нибудь другой сущности (которая не всегда известна первой). Классический пример - кнопка пользовательского интерфейса. Может определить факт того, что ее нажали, но совершенно не знает, как и кто должен обрабатывать это событие. Можно конечно попробовать обмазаться паттерном «наблюдатель» или решать вопрос через наследование, но оба варианта ведут к чудовищной архитектуре. Гораздо правильнее тут использовать какой-нибудь callback-механизм (лично мне больше нравися концепция сигналов).