language-agnostic - CALLBACK 模式/习惯用法有哪些好的用例?

标签 language-agnostic design-patterns

我不使用这种模式,也许在某些地方它是合适的,而我使用了其他模式。你在日常编码中使用过它吗?请随意以您选择的语言提供示例以及您的解释。

最佳答案

回调并不是真正的“模式”——更像是一个构建 block 。 gang of four design patterns 中的一些以类似回调的方式使用虚拟方法。 Justin Niessner 已经提到过 Observer .

回调比 OOP 更古老(并且可能比 3GL 甚至汇编器更古老)。另一个旧的想法是参数 block - C 解释是一个充满相关成员的结构,要传递给函数,这样函数就不需要庞大的参数列表。

OOP 类构建在参数 block 的基础上(并为其添加哲学)。类实例本身是通过引用传递到其方法的参数 block 。虚拟表是一个调度处理参数 block 。每个虚拟方法在调度处理参数 block 中都有一个回调指针。纯虚方法在参数 block 中为回调指针预留空间,并 promise 稍后提供实际的指针。

由于类是面向对象设计模式的构建 block ,而参数 block 和回调是类的构建 block - 那么,您可以声称所有 OOP 设计模式都是从这些思想构建的。

我希望能够说“参数 block 和回调,加上指导其使用的样式规则,启发了面向对象”,但尽管听起来很吸引人,但我不知道这是否属实。

关于language-agnostic - CALLBACK 模式/习惯用法有哪些好的用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1539377/

相关文章:

python - Flask 中的嵌套蓝图?

java - 命名约定模式 : Collection and Collections?

algorithm - 从向量的大小中减去一个常数(缩短向量)而不使用平方根?

algorithm - 多米诺骨牌匹配算法

c++ - 我的组件需要访问者吗?

java - 主循环和单独线程哪个更好?

c++ - 关于可能的设计模式的问题

language-agnostic - 领土 map 生成

language-agnostic - 我们应该将 float 的相等性与*相对*错误进行比较吗?

security - 这种检查 "gift code"的方法安全吗?