搜尋

首頁  >  問答  >  主體

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

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

PHPzPHPz2858 天前693

全部回覆(3)我來回復

  • 阿神

    阿神2017-04-17 11:28:49

    這叫reactor模式
    說到非同步IO,其實現在很難實現真正的異步(除非利用硬體的電位來做異步觸發),大部分情況下仍然需要阻塞在某個多路復用函數,比如select 或者epoll 上,等到描述符就緒(例如網卡緩衝區可讀寫),然後呼叫註冊在對應描述符上的回呼函數。這種方式是現在的反應器設計的基本想法。用Twisted的圖可以解釋

    回覆
    0
  • 阿神

    阿神2017-04-17 11:28:49

    event-driven 是基于观察者模式

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

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

    觀察者模式的想法是:被观察者維護一系列观察者的列表,並在主題改變時,通知所有觀察者
    這個通知機制在javascript就是以callback的方式實現,完全符合觀察者模式的設計理念

    回覆
    0
  • 黄舟

    黄舟2017-04-17 11:28:49

    應該是proactor吧?

    回覆
    0
  • 取消回覆