小编B.M*_*wen的帖子

备忘录和命令设计模式有什么区别?

我已经成功地在 Java 上编写了一个纸牌游戏,现在我被要求在我的设计之上实现一个撤消/重做。

我的计划是存储用户执行的移动列表或堆栈,如果用户想要撤消,我会 1. 检查用户是否可以撤消(即列表或堆栈中有移动),然后 2. 反向我存储的最后两个移动(即“从”移动我将卡片移出的位置和“到”移动,我将卡片移动到的位置)。

对于重做,我只会重做移动,这取决于用户执行撤消操作的距离(例如,如果他们按下撤消两次,我至少会在我的列表或堆栈下方(列表大小 - 4) )。

我认为它们将在这样的接口中实现:

public interface UndoRedo {
    void undo();
    void redo();
 }
Run Code Online (Sandbox Code Playgroud)

我是在实现 Memento 或 Command 设计模式,还是两者都没有?在此游戏的撤消/重做上下文中,我无法理解这两种设计模式的外观。我也是 Java OOP 和一般设计模式的初学者。

java oop command design-patterns memento

3
推荐指数
2
解决办法
2942
查看次数

标签 统计

command ×1

design-patterns ×1

java ×1

memento ×1

oop ×1