是否存在处理回调机制的设计模式?

25 oop design-patterns callback

是否存在处理回调机制的设计模式?

Jos*_*lio 22

这将是观察者模式 - 来自维基百科

观察者模式(异步发布/订阅模式的一个子集)是一种软件设计模式,其中一个称为主体的对象维护其依赖项列表,称为观察者,并通常通过调用自动通知它们任何状态变化.他们的方法之一.它主要用于实现分布式事件处理系统.

  • Observer模式类似于发布 - 订阅模式,而不是回调.一次,在调用Observable模块后,Observer模块不会被"回调".Observable调用Observers来通知它们状态的变化. (5认同)

Sco*_*eld 16

这取决于回调的使用方式.

设计模式都是关于沟通你的意图.

如果您打算允许注册一个或多个回调,并且可以将它们作为通知"在将来的某个时间点"进行调用,那么您就是在讨论Observer.此外 - 在这种情况下回调的实际调用通常是"可选的"或基于某些刺激触发.(可能会或可能不会调用回调)

如果您打算传递"要做的事情",并且在方法中完成(或在以后的过程中用于"做某事"),那么您正在谈论策略.此外 - 通常会发生实际调用.

请注意,完全相同的代码可能是 - 它实际上是关于您如何思考问题以及您希望其他人如何思考它.


dfa*_*dfa 8

回调是一种形式策略设计模式

  • 我同意战略是一个比观察者更好的类比。对我来说,回调是一个函数指针或一个闭包。由于这些结构并非在所有语言中都可用,因此策略是壁橱近似。根据您的观点,您有可能不得不创建您选择的设计模式所需的各种接口。 (2认同)
  • _Strategy_ 实现了一流的函数,与回调无关。 (2认同)

acr*_*omm 6

一些.查看http://people.bu.edu/azs/teaching/cs108/2006fall/callback_pattern.pdf,以及以下内容:

最合适的将取决于具体情况.您想要使用哪种编程语言?您想要做什么?

  • _Visitor_ 实现了双调度,与回调无关。_Observer_ 实现了发布-订阅,与回调类似,但不同。_Strategy_ 实现了一流的函数,与回调无关。 (2认同)