nodejs的事件回调机制是否属于设计模式中的某一种?

属于观察者模式吗?那么谁是观察者?谁是被观察者?

阅读 7k
3 个回答

这叫reactor模式
说到异步IO,其实现在很难实现真正的异步(除非利用硬件的电位来做异步触发),大部分情况下仍然需要阻塞在某个多路复用函数,比如select 或者 epoll 上,等到描述符就绪(比如网卡缓冲区可读写),然后调用注册在相应描述符上的回调函数。这种方式是现在的反应堆设计的基本思路。用Twisted的图可以解释

clipboard.png

event-driven 是基于观察者模式

http://www.dofactory.com/javascript/observer-design-pattern

事件handler是观察者,事件源是被观察者

观察者模式的思想是:被观察者维护一系列观察者的列表,并在主题改变时,通知所有观察者
这个通知机制在javascript就是以callback的方式实现,完全符合观察者模式的设计理念

应该是proactor吧?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题