私はゲームをプログラミングしている大学のプロジェクトに取り組んでいます。このゲームでは、いくつかの効果が発生する可能性があり、1 つの効果が別の効果の動作に影響を与える可能性があります。アイデアの 1 つは、最初は固い解決策のように見えた複合パターンを使用することでした。ここでの最大の問題は、エフェクトの動作がどのエフェクトと組み合わされているかによって異なり、これを修正する唯一の方法が .getClass() または instanceof を使用することであり、これは絶対に避けたいことです。
この問題を設計するにはどのような方法がありますか?
編集(小さな例):明示的なコード例はありませんが、次の例で少し明確にしようとします:
そのため、ゲームには手榴弾 (明らかに爆発してダメージを与える可能性があります) があり、この爆発は "ExplosionEffect" と見なされます。手榴弾が置かれているマスには、実行時に電源障害が発生する可能性があります (PowerfailureEffect)。ExplosionEffect と PowerfailureEffect を組み合わせると、爆発がより強力になり、より多くのダメージを与えることができます。ExplosionEffect は、爆発によるダメージの動作をさらに異なるものにする他のエフェクトと組み合わせることもできます。