さまざまなタイプの多くのアイテムで構成されるシステムのモデルを構築するための一般的な解決策は、各モジュールが特定のタイプを担当するモジュラー システムを作成することです。たとえば、ウォンバットのモジュール WombatModule:IModule があり、IModule インターフェイスには GetCount() (ウォンバットの数を見つける) や Update() (すべてのウォンバットの状態を更新する) などのメソッドがあります。
よりオブジェクト指向のアプローチは、すべてのアイテム タイプのクラスを持ち、すべてのアイテムのインスタンスを作成することです。これにより、クラス Wombat:IItem が Update() のようなメソッドで作成されます (この 1 つの wombat を更新するため)。
コードの観点から見ると、違いはごくわずかですが、実行時間は大幅に異なります。モジュール指向のソリューションは確かに高速です。オブジェクトの作成が少なくなり、すべてのウォンバットに共通する操作の最適化が容易になります。
タイプとモジュールの数が増えると問題が発生します。各モジュールがいくつかのアイテムしかサポートしないため、パフォーマンス上の利点のほとんどが失われるか、モジュールの複雑さが大きくなり、1 つの一般的なタイプのわずかに異なるアイテム (太ったウォンバットとスリムなウォンバットなど) に対応するようになります。または両方。
WombatModule が非表示の Wombat オブジェクトのコレクションを保持し、それらのメソッドをループで実行するだけである場合、少なくとも一度は状態が悪化するのを見たことがあります。
パフォーマンスが長期的な開発ほど問題にならない場合、アイテムごとのオブジェクトの代わりにモジュールを使用するアーキテクチャ上の理由を特定できますか? 私が見逃している別の可能性があるかもしれませんか?