想象一下,您有300種不同類型的單元。每個單位都有不同的特殊能力。例如,如果unit18靠近樹,它就不可見。 Unit33和unit212具有相同的能力。我怎樣才能巧妙地模擬這300個獨特的單位?以objc模式建模許多不同類
我只有兩個想法,這兩個都很糟糕。要麼爲每個單位創建一個班級,最後需要300個班級。而每一次我有時間去檢查有沒有會出現這樣的結構:
for (Unit *unit in units)
{
if ([unit isKindOfClass:[Unit1 class]])
{
// do something
}
else if ([unit isKindOfClass:[Unit2 class]])
{
// do something
}
else if ([unit isKindOfClass:[Unitxxx class]])
{
// do something
}
}
另一種解決方案是創建具有各種能力一個整體的怪物單元類。
我認爲設計的像這篇文章解釋說: http://www.learn-cocos2d.com/2010/06/prefer-composition-inheritance/
我已經試圖讓這種設計的,但它沒有工作。
我很感謝每一個建議。
在此先感謝!
您應該將所有對象加載到一個數組中,這有助於生成更加動態和高效的代碼。 –
所以你建議創建300個不同的類。每個單位一個? – zeiteisen
我認爲這種問題更適合gamedev.SE – JustSid