2013-07-19 48 views
0

我正在創建一個數據系統來容納遊戲的各種項目,我不確定哪種組織風格更有效。例如,我有一個Item類,它會使Weapon的一個子類和Melee的另一個子類擴展武器的效率比在Item類中創建多個變量的效率更高或更低,該變量保存它是武器還是裝甲或其他如果它是近戰或遠程或頭盔..等等。或者這些組合是否高效並且組織得很容易靈活操作?在Java中使用子類和變量的高效類組織

回答

1

這個問題很廣泛,但一般來說最好是製作子類,而不是在一些基礎條目中存儲過多的變量。

從基地開始,一路順風。

public class Item { 
    private String name; 
    ... 
} 

public class Weapon extends Item { 
    ... 
} 

public class Melee extends Weapon { 
    ... 
} 

public class Ranged extends Weapon { 
    ... 
} 

這樣,您就可以定義之類的東西

public class Dagger extends Melee { 
    ... 
} 

,你會不會擔心定義字段通用於所有項目,如一個名字。

它不會對設計問題有所幫助,但是因爲它是一款遊戲,所以如果您還沒有參與遊戲,您可能還需要查看Lightweight Java Game Library

0

假設所有項目的屬性都是相關的(它們都具有durability屬性),那麼有一個存儲和處理該屬性的父類是有意義的。同樣,如果所有武器都是相關的(它們都具有damage屬性),那麼有一個存儲和處理該類的父類是有意義的。

由於似乎有很多項目之間的關係,你應該創建子類而不是嘗試並按情況做。這也可以讓你改變如何處理父母的屬性(一種更高效,更準確的算法)在一個地方,而不是幾個。