Flux模式簡析

2021-09-11 14:50:19 字數 1486 閱讀 2633

相比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...

裝飾設計模式簡析

裝飾設計模式使用場景 當想要對已有的物件進行功能增強時,可以定義類,將已有物件傳入,基於已有功能,並提供加強功能,那麼自定義的該類稱為裝飾類。裝飾類通常會通過構造方法接受被裝飾的物件,並基於被裝飾物件的功能,提供更強的功能。裝飾類因為增強已有物件,具備的功能和已有的是相同型別的,只不過要更強。所以裝...

裝飾設計模式簡析

裝飾設計模式使用場景 當想要對已有的物件進行功能增強時,可以定義類,將已有物件傳入,基於已有功能,並提供加強功能,那麼自定義的該類稱為裝飾類。裝飾類通常會通過構造方法接受被裝飾的物件,並基於被裝飾物件的功能,提供更強的功能。裝飾類因為增強已有物件,具備的功能和已有的是相同型別的,只不過要更強。所以裝...