我不使用这种模式,也许在某些地方它是合适的,而我使用了其他模式。你在日常编码中使用过它吗?请随意以您选择的语言提供示例以及您的解释。
最佳答案
回调并不是真正的“模式”——更像是一个构建 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/