-1

我正在尝试创建一个 C++ API,但该 API 需要向 API 的用户查询信息。

例如,我将处理所有鼠标输入,但是当我收到左键单击事件时,我需要询问用户被单击的对象是否是他们希望与之交互的对象。如果是,那么将采取行动,如果不是,那么我将忽略输入。

因此,在我的 API 中,当我单击鼠标左键时,我需要调用一个函数,该函数的功能取决于 API 的用户,并根据该函数的返回进行评估。

这有设计模式吗?

4

1 回答 1

1

您正在寻找的设计模式是Callback

基本上这是如何工作的:

  1. 您声明一个指向函数的指针。此声明将考虑要调用的函数的返回值和参数(如果有)。
  2. 您为客户端提供了一种机制来“注册”要调用的函数,客户端在其中传递函数指针以及可能的其他一些信息。
  3. 当发生需要通知客户的事件时,您调用已注册的函数,并传入任何相关数据。
于 2013-10-24T15:07:48.260 回答