我有一個非常簡單的播放器 java中使用一些策略的類全部繼承接口PlayerStrategy。如何在使用組合(java)時實現關閉開關?
PlayerStrategy的一些實現很簡單,但其他一些實現非常耗費資源,因此我需要確保在策略停止使用時正確釋放資源。這些策略有一個額外的方法:turnOff()負責處理。
現在,如果玩家離開遊戲,我希望它在所有需要它的策略中調用turnOff()。
問題是隻有幾個策略需要turnOff(),所以我不覺得將該方法添加到PlayerStrategy接口不舒服。
當玩家停止播放時,如果方法turnOff()存在於其策略中,則通過反射進行檢查。但它笨重而醜陋。有沒有更好的辦法?
我更喜歡大多數方法實現的非抽象類。這樣大多數策略都很簡單,而重型策略可以替代其他方法。 – Jayan 2012-08-11 14:14:34
這就是我通常做的,但我有一些實現,實現多個接口,這就是爲什麼我目前的困境 – CarrKnight 2012-08-12 00:22:01