观察者模式与反应堆模式

Car*_*ini 8 design-patterns

我一直在研究这两个但是找不到任何真正的区别,我错过了什么吗?在网上有人说Observer应该只处理一个事件,而Reactor很多 - 但我不认为这是一个真正的区别,因为Reactor可以像许多Observer一样被看到.有任何区别或更新名称Reactor比Observer更酷吗?

谢谢,卡罗

Flo*_*oky 11

反应堆模式利用了解复用请求,并分派到正确的处理程序中介服务处理器.

观察者模式要求"观察员"与主题,然后推通知到所有注册的观察者在事件发生时注册.

重要的区别在于Reactor Pattern处理使用中央请求处理程序的调度,而Observer Pattern允许消费者直接与生产者交谈.

实际上,Observer Pattern可以为动态注册和取消注册消费者提供更大的灵活性.在非常高的并发应用程序中,它还提供了不具有单个中间调度程序瓶颈的吞噬量的好处.在流失的监听器问题也是相关的,当消费者忘记与受注销时,他们不再需要通知发生.在垃圾收集语言中,这通常会阻止GC收集这些事件处理程序,从而泄漏它们以及它们持有的任何引用.这通常不适用于Reactor Pattern,它通常不使用动态注册(尽管理论上可以).

  • Reactor解决了一个非常特定于**服务器的问题**:"服务器应用程序必须解复用并将每个传入请求分派给相应的服务提供商." 观察者是一种更为一般的模式,可以将主体与观察者分开. (3认同)