2013-10-24 6 views
-1

Я пытаюсь создать C++ API, но для этого API необходимо запросить пользователя API для получения информации.API должен вызвать функцию, которую пользователь реализует

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

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

Есть ли шаблон дизайна для этого?

ответ

1

Дизайн, который вы ищете, - Callback.

В принципе, как это работает следующим образом:

  1. Вы объявляете указатель на функцию. Эта декларация будет принимать во внимание как возвращаемое значение, так и параметры (если они есть) вызываемой функции.
  2. Вы предоставляете механизм для того, чтобы клиент «зарегистрировал» вызываемую функцию, где клиент передает указатель на функцию и, возможно, некоторую другую информацию.
  3. Когда случается, что вам нужно уведомить своего клиента, вы вызываете зарегистрированную функцию, передавая любые соответствующие данные.
Смежные вопросы