【问题标题】:API needs to call a function that the user implementsAPI需要调用用户实现的函数
【发布时间】:2013-10-24 15:03:08
【问题描述】:

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

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

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

有这方面的设计模式吗?

【问题讨论】:

    标签: c++ design-patterns interface


    【解决方案1】:

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

    基本上它的工作原理如下:

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

    【讨论】:

      猜你喜欢
      • 2012-02-01
      • 1970-01-01
      • 2019-08-30
      • 1970-01-01
      • 2012-02-09
      • 2012-11-17
      • 2017-04-27
      • 2021-11-04
      • 2021-05-11
      相关资源
      最近更新 更多