クラス A がクラス B、C、および D のそれぞれと固有の相互作用を持つ場合、相互作用のコードは A にあるべきか、B、C、および D にあるべきか?
多くのオブジェクトが他のオブジェクトと独自の相互作用を持つことができる小さなゲームを書いています。たとえば、EMP
a は a にヒットし、sentry gun
それを無効にします。また、 を攻撃しgrenade
て爆発させたり、 を攻撃player
して減速効果を適用したりすることもできます。
私の質問は、このコードを EMP クラスに入れるか、それとも他のすべてのクラスに分散させるべきかということです。私の直感は、これをポリモーフィックに行うように指示するので、各クラスに EMP ストライクを好きなように処理するように指示するだけです。これにより、EMP コードを変更せずに項目を追加し、EMP の処理方法を変更することができます。
ただし、EMP は現在、50 個のオブジェクトのうち約 4 個としかやり取りできないため、空の RespondToEMP() 呼び出しで 46 個のオブジェクトを満たすのは間違っているようです。EMP を削除することにした場合、他のすべてのクラスを変更する必要があり、EMP クラス自体がかなり小さくなってしまいます。また、EMP の動作を変更したい場合は、さまざまなクラスをすべて調べて、考えられるすべての用途を見つける必要があることも意味します。さらに、EMP に爆発などの一般的な効果がある場合、この効果は間違いなく EMP コード内にあり、配布される他のすべての効果から離れています。