2015-07-21 63 views
0

我正在创建一个FreeCell游戏,并且在游戏结束时我希望它能够打印出用户的移动。所以解决方案是Move []。移动类的样子:Java:创建一个空接口来从一个属性访问不同的类?

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; 
    } 
} 

我想位置,能够存储三种不同类型的一个空当接龙游戏地点:细胞(可容纳1卡),瀑布(这是卡被处理)和基金会(在哪里放置这些卡来解决这个游戏)。所以我需要Location来存储Cell,Cascade和Foundation类的对象。但是这些类并不都具有它们之间共享的任何属性或方法,所以父类没有多大意义。此外,Cascade已经扩展LinkedList以避免在创建LinkedLists数组时出现警告,并且它不能扩展两个父类。

那么有没有一个优雅的解决方案呢?我应该创建一个名为Location的空白界面吗?还是我没有想到可以在这里使用OOP的一个更简单的方面?

回答

0

Location s为只值权的小型固定集:
单元1至4
基金会1至4
级联1至8

你可以使用enum秒。

public interface Location {} 

public enum Cell implements Location { ONE, TWO, THREE, FOUR } 
相关问题