我在 java 中有一个非常简单的Player类,它使用一些策略对象,这些对象都继承自接口PlayerStrategy。
PlayerStrategy的一些实现很简单,但其他一些实现非常耗费资源,我需要确保在策略停止使用时正确释放资源。这些策略有一个额外的方法:turnOff() 可以解决这个问题。
现在,如果 Player 离开游戏,我希望它在所有需要它的策略中调用 turnOff()。
问题是只有少数策略需要 turnOff() ,所以我觉得将该方法添加到PlayerStrategy接口并不方便。
现在,当 Player 停止播放时,它会通过反射检查其策略中是否存在方法 turnOff()。但它又笨又丑。有没有更好的办法?