Design patterns 观察者模式与反应器模式

Design patterns 观察者模式与反应器模式,design-patterns,Design Patterns,我一直在研究这两个问题,但没有发现任何真正的区别,我是不是遗漏了什么? 在网络上,有人说,观察者应该只处理一个事件,而反应堆很多-但我不认为这是一个真正的区别,因为反应器可以看到许多观察员一样。有什么区别吗?或者说新名字的反应堆比观测者更酷 谢谢, Carlo使用一个中介服务处理程序,该处理程序将请求解复用并分派给正确的处理程序 要求“观察者”向主题注册,然后在事件发生时将通知推送到所有注册的观察者 重要的区别在于Reactor模式使用一个中央请求处理程序处理调度,而Observer模式允许使用

我一直在研究这两个问题,但没有发现任何真正的区别,我是不是遗漏了什么? 在网络上,有人说,观察者应该只处理一个事件,而反应堆很多-但我不认为这是一个真正的区别,因为反应器可以看到许多观察员一样。有什么区别吗?或者说新名字的反应堆比观测者更酷

谢谢, Carlo

使用一个中介服务处理程序,该处理程序将请求解复用并分派给正确的处理程序

要求“观察者”向主题注册,然后在事件发生时将通知推送到所有注册的观察者

重要的区别在于Reactor模式使用一个中央请求处理程序处理调度,而Observer模式允许使用者直接与生产者对话


实际上,观察者模式可以在动态注册和注销消费者方面提供更大的灵活性。在非常高的并发性应用程序中,它还提供了一个好处,即没有一个中间调度器来限制吞吐量。当消费者不想再收到通知而忘记取消注册时,这种情况也会发生。在垃圾收集语言中,这通常会阻止GC收集这些事件处理程序,从而泄漏它们和它们所持有的任何引用。反应器模式通常不可能做到这一点,它通常不使用动态注册(虽然理论上可以)。

我同意在许多方面,反应器是观察者模式的另一个名称。反应器解决了一个非常特定于服务器的问题:“服务器应用程序必须将每个传入的请求解复用并分派给相应的服务提供商。”Observer是一种更通用的模式,用于将主体与其观察者分离。与reactor模式的原始链接已断开,但您可以在此处找到它