我在Android Studio中創建了一個遊戲。遊戲具有簡易模式和硬模式(分別爲hard=False
和hard=True
)。Java/Android:定義未知類型的對象
Easy模式和Hard模式都有它們自己的類別。這兩個類都包含相同的功能,但它們的實現有所不同。我從我的Gameplay類調用這些類中的函數。這意味着,在我的遊戲類的每一個功能,我必須做到以下幾點:不是每個函數執行此的if-else檢查
if (hard == True):
HardGameplay gameplayMode = new HardGameplay();
else:
EasyGameplay gameplayMode = new EasyGameplay();
functionResult = gameplayMode.myFunction();
不過,我想檢查這只是一次。因此,我創建了一個checkDifficulty()函數,我在的onCreate開始撥打:
public ??? gameplayMode;
public Boolean easyOrHard() {
if (hard == True):
HardGameplay gameplayMode = new HardGameplay();
else:
EasyGameplay gameplayMode = new EasyGameplay();
}
的問題是,我不知道我應該在???
放置什麼類型。它應該是HardGameplay
或EasyGameplay
,但我不知道這兩個提前。把Object
也沒有工作,因爲那樣,我打電話給每個功能給出錯誤Cannot resolve method 'myFunction()'
。
有誰知道該怎麼辦?或者,我忽略了一個更簡單的實現?任何幫助是極大的讚賞!
看看[策略模式](https://en.wikipedia.org/wiki/Strategy_pattern) –