日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

js实现撤销恢复_我们常用的撤销和恢复功能,它们使用了什么设计模式实现吗?...

發布時間:2025/4/16 asp.net 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js实现撤销恢复_我们常用的撤销和恢复功能,它们使用了什么设计模式实现吗?... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

現有場景描述:

現在無論是系統自帶的鍵盤還是第三方的鍵盤一般都自帶撤銷和恢復功能,你知道它們是用的什么模式實現的嗎?

它們用的是命令模式+觀察者模式,你答對了嗎?

簡單科普一下

啥是命令模式(Command)?

Command模式:

  • 模式類型:行為類模式
  • 定義:將一個操作、一個方法調用、一個命令封裝成一個對象,在合適的時候讓這個對象進行執行。
  • 適用場景(執行意愿):像個皇帝身邊的守護侍衛一樣,隨叫隨到。隨時準備著等待被調用。例如:軟件提供的菜單按鈕,點擊了,就會執行相應的操作。
  • 類圖:

調用者中有個聚合關系的命令類

命令類索引著命令接受者

是不是So Easy!!

關于命令模式,如果有不熟悉的童鞋,看這里,加代碼具體來講解:設計模式是什么鬼(命令模式)

啥是觀察者(Obsevser)模式?

  • 模式類型:行為類模式
  • 定義:表示的是一種一對多的關系。當被觀察者類A的屬性aa發生了改變,就會主動去通知觀察類B、C、D,這樣觀察類們的狀態就會及時的被更新了。
  • 適用場景(執行意愿):控制器觀察model中的屬性,當屬性變化了就去更新View的信息。系統時刻觀察著鍵盤的字符輸入,有了輸入時,就把輸入信息通知給View展示。等等。
  • 類圖:

被觀察者索引著觀察者對象

是不是So Easy!!

關于觀察者模式,如果有不熟悉的童鞋,看這里,加代碼具體來講解:設計模式是什么鬼(觀察者)

Cocoa Touch框架內的實際應用

NSUndoManager是蘋果提供的撤銷恢復管理類,它里面主要有三個要素構成

  • 恢復棧
  • 撤銷棧
  • 命令對象:NSInvocation

圖表顯示如下:

進入撤銷棧時,NSInvocation執行撤銷命令

進入恢復棧時,NSInvocation執行恢復命令

開發中如何將它們合起來用呢?

  • 在Command中添加命令執行對象NSInvocation
  • 在Command中添加觀察者列表,當命令執行是通知列表中的觀察者
  • 創建一個類似NSUndoManager的類,來管理整體commond列表
  • 以上就是對撤銷和恢復功能中設計模式運用的科普,設計模式在我們開發中是非常重要的,用好了事半功倍,寫出的代碼非常優雅。

    總結

    以上是生活随笔為你收集整理的js实现撤销恢复_我们常用的撤销和恢复功能,它们使用了什么设计模式实现吗?...的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。