【发布时间】:2018-08-12 10:00:07
【问题描述】:
我已经在 Java 上成功编写了一个纸牌游戏,现在我被要求在我的设计之上实现撤消/重做。
我的计划是存储用户执行的移动列表或堆栈,如果用户想要撤消,我会 1. 检查用户是否可以撤消(即列表或堆栈中有移动),然后2. 反转我存储的最后两个动作(即我将卡片从其中移动的“从”移动和将卡片移动到的“到”移动)。
对于重做,我只会重做动作,具体取决于用户执行撤消操作的距离(例如,如果他们按下撤消两次,我至少会(列表大小 - 4)在我的列表或堆栈)。
我认为它们将在这样的接口中实现:
public interface UndoRedo {
void undo();
void redo();
}
我是在实现 Memento 或 Command 设计模式,还是两者都没有?在这个游戏的撤消/重做的上下文中,我无法掌握这两种设计模式的样子。我也是 Java OOP 和一般设计模式的初学者。
【问题讨论】:
-
now I have been asked to implement...如果是作业,请参阅How do I ask and answer homework questions?
标签: java oop design-patterns command memento