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