js实现撤销恢复_我们常用的撤销和恢复功能,它们使用了什么设计模式实现吗?...
生活随笔
收集整理的這篇文章主要介紹了
js实现撤销恢复_我们常用的撤销和恢复功能,它们使用了什么设计模式实现吗?...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
現有場景描述:
現在無論是系統自帶的鍵盤還是第三方的鍵盤一般都自帶撤銷和恢復功能,你知道它們是用的什么模式實現的嗎?
它們用的是命令模式+觀察者模式,你答對了嗎?
簡單科普一下
啥是命令模式(Command)?
Command模式:
- 模式類型:行為類模式
- 定義:將一個操作、一個方法調用、一個命令封裝成一個對象,在合適的時候讓這個對象進行執行。
- 適用場景(執行意愿):像個皇帝身邊的守護侍衛一樣,隨叫隨到。隨時準備著等待被調用。例如:軟件提供的菜單按鈕,點擊了,就會執行相應的操作。
- 類圖:
調用者中有個聚合關系的命令類
命令類索引著命令接受者
是不是So Easy!!
關于命令模式,如果有不熟悉的童鞋,看這里,加代碼具體來講解:設計模式是什么鬼(命令模式)
啥是觀察者(Obsevser)模式?
- 模式類型:行為類模式
- 定義:表示的是一種一對多的關系。當被觀察者類A的屬性aa發生了改變,就會主動去通知觀察類B、C、D,這樣觀察類們的狀態就會及時的被更新了。
- 適用場景(執行意愿):控制器觀察model中的屬性,當屬性變化了就去更新View的信息。系統時刻觀察著鍵盤的字符輸入,有了輸入時,就把輸入信息通知給View展示。等等。
- 類圖:
被觀察者索引著觀察者對象
是不是So Easy!!
關于觀察者模式,如果有不熟悉的童鞋,看這里,加代碼具體來講解:設計模式是什么鬼(觀察者)
Cocoa Touch框架內的實際應用
NSUndoManager是蘋果提供的撤銷恢復管理類,它里面主要有三個要素構成
- 恢復棧
- 撤銷棧
- 命令對象:NSInvocation
圖表顯示如下:
進入撤銷棧時,NSInvocation執行撤銷命令
進入恢復棧時,NSInvocation執行恢復命令
開發中如何將它們合起來用呢?
以上就是對撤銷和恢復功能中設計模式運用的科普,設計模式在我們開發中是非常重要的,用好了事半功倍,寫出的代碼非常優雅。
總結
以上是生活随笔為你收集整理的js实现撤销恢复_我们常用的撤销和恢复功能,它们使用了什么设计模式实现吗?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 正点原子探索者原理图_正点原子【STM3
- 下一篇: splice方法_JavaScript数