【发布时间】:2015-07-21 22:25:45
【问题描述】:
我正在创建一个 FreeCell 游戏,我希望它在游戏结束时打印出用户的动作。所以解决方案是 Move[]。 Move 类如下所示:
public class Move
{
private Card card;
private Location source;
private Location target;
public Move(Card card, Location source, Location target)
{
this.card = card;
this.source = source;
this.target = target;
}
}
我希望 Location 能够在 FreeCell 游戏中存储三种不同类型的位置:Cells(可以容纳 1 张牌)、Cascades(发牌的地方)和 Foundations(其中放置卡片以解决游戏)。所以我需要 Location 来存储 Cell、Cascade 和 Foundation 类的对象。但是这些类并不都具有它们之间共享的任何属性或方法,因此父类没有多大意义。此外,Cascade 已经扩展了 LinkedList 以避免在创建 LinkedList 数组时出现警告,并且它不能扩展两个父类。
那么有没有一个优雅的解决方案呢?我应该创建一个名为 Location 的空白界面,还是有一个我没有想到的更简单的 OOP 方面可以在这里使用?
【问题讨论】: