Implementing the command pattern

2019-02-08 12:36发布

I am in the design process of an application, and I would like to use the command pattern for undo/redo purposes. I did some research into the command pattern but the only thing I don't get is: Should a command have the undo and redo methods, or should I make two separate commands, one for undo and one for redo, and call those from the main command itself?

2条回答
Anthone
2楼-- · 2019-02-08 13:21

The command object itself should implement the undo / redo functionality.

The commands are generally pushed and popped from a stack maintained by a command manager to implement multi level undo. When commands are executed they are pushed onto the stack and when they are undone they are popped from the stack.

The memento pattern would be used in conjunction with the command pattern, it is not a replacement to the usage of the command pattern. It would be used to maintain the state required for the undo operation.

查看更多
Deceive 欺骗
3楼-- · 2019-02-08 13:23

You might also want to consider the memento pattern for this, we use it and it works brilliant for undo.

查看更多
登录 后发表回答