我有一個我的大學的項目,我使用PowerDesigner
來模擬一個應該是抽象的MS Visio
的應用程序,基本上是一個通用的圖形編輯器。命令模式,有什麼資格作爲命令?
我應該實現命令模式,但只關注實際工作空間(而不是層級樹)。現在,我有一個抽象類,它有一個名爲的抽象函數和一個名爲undo()
的空函數(但不是抽象函數)。這個想法是讓具體的命令覆蓋第一種方法,但只有可撤銷命令覆蓋第二種方法。
我在理解作爲命令的資格方面遇到了一些麻煩。可撤銷的方法有點容易命名,因爲我有Move
,Resize
,Rotate
,AlterProperty
,Delete
和Add
。無法撤銷的命令是問題。
工具欄上的每個動作都是一個命令嗎?我正在考慮把Zoom
和Scroll
作爲一個命令,但我不確定這是否會造成分裂。至於Cut
,Copy
和Paste
,第一個幾乎是填充Clipboard
元素列表,之後Delete
命令被調用,而後兩者幾乎增加和從Clipboard
列表中刪除,所以我不知道如果我應該把它歸類爲命令。
基本上,問題是 - 如何處理不可撤銷的命令?每個動作應該創建一個命令對象嗎?