相比mvc模式,flux多出了更多的箭頭跟圖示,但是有個關鍵性的差別是:所有的剪頭都指向乙個方向,在整個系統中形成乙個閉環。
"shut up and show me the code"
這裡主要分析dispatcher檔案**
複製**
dispatcher檔案初始化
var invariant = require('invariant');
export type dispatchtoken = string;
var _prefix = 'id_';
class
dispatcher
;_isdispatching: boolean;
_ishandled: ;
_ispending: ;
_lastid: number;
_pendingpayload: tpayload;
constructor() ;
this._isdispatching = false;
this._ishandled = {};
this._ispending = {};
this._lastid = 1;
} register(callback: (payload: tpayload) =>
void): dispatchtoken
...}複製**
dispatch方法
dispatch(payload: tpayload): void
this._invokecallback(id);
}} finally }
isdispatching(): boolean
_invokecallback(id: dispatchtoken): void
_startdispatching(payload: tpayload): void
this._pendingpayload = payload;
this._isdispatching = true;
}_stopdispatching(): void
複製**
waitfor方法
waitfor(ids: array
): void
invariant(
this._callbacks[id],
'dispatcher.waitfor(...): `%s` does not map to a registered callback.',
id);
this._invokecallback(id);
}}複製**
單例模式簡析
一 單例模式 單例模式確保乙個類只有乙個例項,自行提供這個例項並向整個系統提供這個例項。特點就是多讀單寫。函式簡單實現 class singleton return sinstance void printf protected singleton data 0 防拷貝,只申明不定義 singlet...
裝飾設計模式簡析
裝飾設計模式使用場景 當想要對已有的物件進行功能增強時,可以定義類,將已有物件傳入,基於已有功能,並提供加強功能,那麼自定義的該類稱為裝飾類。裝飾類通常會通過構造方法接受被裝飾的物件,並基於被裝飾物件的功能,提供更強的功能。裝飾類因為增強已有物件,具備的功能和已有的是相同型別的,只不過要更強。所以裝...
裝飾設計模式簡析
裝飾設計模式使用場景 當想要對已有的物件進行功能增強時,可以定義類,將已有物件傳入,基於已有功能,並提供加強功能,那麼自定義的該類稱為裝飾類。裝飾類通常會通過構造方法接受被裝飾的物件,並基於被裝飾物件的功能,提供更強的功能。裝飾類因為增強已有物件,具備的功能和已有的是相同型別的,只不過要更強。所以裝...