2015-07-21 34 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 } 
相關問題