我有一个大学项目,我用PowerDesigner
它来模拟一个应该是抽象的应用程序MS Visio
,基本上是一个通用的图形编辑器。
我应该实现命令模式,但只关注实际的工作空间(而不是层次树)。现在,我有一个抽象类,它有一个名为的抽象函数execute()
和一个名为undo()
. 这个想法是让具体命令覆盖第一种方法,但只有可撤消的命令覆盖第二种方法。
我在理解什么是命令时遇到了一些麻烦。可撤销的方法有点容易命名,就像我有Move
, Resize
, Rotate
,AlterProperty
和. 不可撤销的命令是问题所在。Delete
Add
工具栏上的每个操作都是命令吗?我正在考虑将Zoom
andScroll
作为命令,但我不确定这是否会成功。至于Cut
,Copy
和Paste
,第一个几乎是Clipboard
元素列表的填充,然后Delete
调用命令,而后两个几乎是从Clipboard
列表中添加和删除,所以我不知道我是否应该将其归类为一个命令。
基本上,问题是 - 我如何处理不可撤销的命令?每个动作都应该创建一个命令对象吗?