看看用TypeScript怎樣實現(xiàn)常見的設計模式,順便復習一下。
學模式最重要的不是記UML,而是知道什么模式可以解決什么樣的問題,在做項目時碰到問題可以想到用哪個模式可以解決,UML忘了可以查,思想記住就好。
這里盡量用原創(chuàng)的,實際中能碰到的例子來說明模式的特點和用處。

備忘錄模式 Memento

特點:通過保存對象之前的狀態(tài)來使對象可以恢復到之前的樣子。

用處:當對象需要保存/加載某一時刻的狀態(tài)時可以考慮備忘錄模式,如游戲的save/load。

注意:狀態(tài)過大產(chǎn)生的開銷。

備忘錄應該經(jīng)??梢钥吹?,游戲的save/load,photoshop的歷史記錄,windows的還原點都是這個模式的應用。
使用時也要注意保存的狀態(tài)過大時產(chǎn)生的開銷,保存在硬盤上的還好,如果是運行時保存在內(nèi)存上的,比如一些復雜對象的undo/redo操作,保存每一個狀態(tài)都是很大的內(nèi)存開銷,這時就需要做些限制,比方設置一個歷史記錄棧的最大值來限定內(nèi)存的使用。

備忘錄的例子和下面的命令模式一起寫,實現(xiàn)一個支持undo/redo的操作。

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓學習是年輕人改變自己的最好方式