私は Java で非常に単純なPlayerクラスを持っています。これは、すべてインターフェイスPlayerStrategyから継承するいくつかの戦略オブジェクトを使用します。
PlayerStrategyの一部の実装は単純ですが、その他のいくつかはリソースを集中的に使用するため、戦略が使用されなくなったときにリソースを適切に解放する必要があります。これらの戦略には追加のメソッドがあります: それを処理する turnOff() です。
Player がゲームを離れた場合、必要なすべての戦略で turnOff() を呼び出したいと思います。
問題は、turnOff() を必要とする戦略はごくわずかであるため、そのメソッドをPlayerStrategyインターフェースに追加するのは気が進まないということです。
現在、プレイヤーがプレイを停止すると、その戦略にメソッド turnOff() が存在するかどうかをリフレクションによってチェックします。しかし、それは不格好で醜いです。より良い方法はありますか?