撤銷功能的實現——備忘錄模式(一)
每個人都有過後悔的時候,但人生並無後悔藥,有些錯誤一旦發生就無法再挽回,有些人一旦錯過就不會再回來,有些話一旦說出口就不可能再收回,這就是人生。為了不後悔,凡事我們都需要三思而後行。說了這麼多,大家可能已經暈了,不是在學設計模式嗎?為什麼弄出這麼一堆人生感悟來,呵呵,彆著急,本章將介紹一種讓我們可以在軟體中實現後悔機制的設計模式——備忘錄模式,它是軟體中的“後悔藥”,是軟體中的“月光寶盒”。話不多說,下面就讓我們進入備忘錄模式的學習。
21.1 可悔棋的中國象棋
Sunny軟體公司欲開發一款可以執行在Android平臺的觸控式中國象棋軟體,由於考慮到有些使用者是“菜鳥”,經常不小心走錯棋;還有些使用者因為不習慣使用手指在手機螢幕上拖動棋子,常常出現操作失誤,因此該中國象棋軟體要提供“悔棋”功能,使用者走錯棋或操作失誤後可恢復到前一個步驟。如圖21-1所示: 圖21-1 Android版中國象棋軟體介面示意圖 |
如何實現“悔棋”功能是Sunny軟體公司開發人員需要面對的一個重要問題,“悔棋”就是讓系統恢復到某個歷史狀態,在很多軟體中通常稱之為“撤銷”。下面我們來簡單分析一下撤銷功能的實現原理:
在實現撤銷時,首先必須儲存軟體系統的歷史狀態,當使用者需要取消錯誤操作並且返回到某個歷史狀態時,可以取出事先儲存的歷史狀態來覆蓋當前狀態。如圖21-2所示:
圖21-2撤銷功能示意圖
備忘錄模式正為解決此類撤銷問題而誕生,它為我們的軟體提供了“後悔藥”,通過使用備忘錄模式可以使系統恢復到某一特定的歷史狀態。
【作者:劉偉 http://blog.csdn.net/lovelion】
相關文章
- 撤銷功能的實現——備忘錄模式(五)模式
- 撤銷功能的實現——備忘錄模式(四)模式
- 撤銷功能的實現——備忘錄模式(三)模式
- 撤銷功能的實現——備忘錄模式(二)模式
- 設計模式——命令模式實現撤銷設計模式
- 在Swift中實現撤銷功能Swift
- 備忘錄模式模式
- 設計模式----備忘錄模式設計模式
- 設計模式 - 備忘錄模式設計模式
- 設計模式學習筆記(十八)備忘錄模式及其實現設計模式筆記
- 撤銷和回退的實現
- 探究 canvas 繪圖中撤銷(undo)功能的實現方式Canvas繪圖
- 備忘錄模式(Memento)模式
- JavaMementoPattern(備忘錄模式)Java模式
- 19_備忘錄模式模式
- 『現學現忘』Git基礎 — 23、Git中的撤銷操作Git
- 行為型模式:備忘錄模式模式
- Java備忘錄模式(Memento模式)Java模式
- 設計模式(十九):備忘錄模式設計模式
- 設計模式之備忘錄模式設計模式
- React 全家桶實現一個簡易備忘錄React
- 第 22 章 備忘錄模式模式
- 簡說設計模式——備忘錄模式設計模式
- 設計模式 - 備忘錄模式 ( Memento )設計模式
- 極簡設計模式-備忘錄模式設計模式
- GoLang設計模式11 - 備忘錄模式Golang設計模式
- Python設計模式-備忘錄模式Python設計模式
- 大話設計模式—備忘錄模式設計模式
- Android備忘錄《單例模式》Android單例模式
- 設計模式漫談之備忘錄模式設計模式
- java設計模式-備忘錄模式(Memento)Java設計模式
- 23種設計模式之備忘錄模式設計模式
- Qt中的撤銷/重做功能QT
- 折騰Java設計模式之備忘錄模式Java設計模式
- 設計模式 | 備忘錄模式及典型應用設計模式
- 19.java設計模式之備忘錄模式Java設計模式
- 備忘錄設計模式知識概括設計模式
- 設計模式的征途—20.備忘錄(Memento)模式設計模式