2008-09-11 6 views
1

異なるタイプの多くのアイテムで構成されるシステムのモデルを構築する共通の解決策は、各モジュールが特定のタイプを担当するモジュラーシステムを作成することです。たとえば、Wombat WombatModule:IModule用のモジュールがあります。ここでは、IModuleインターフェイスにGetCount()(wombatsの数を見つける)やUpdate()(すべてのwombatsの状態を更新する)などのメソッドがあります。モデリングのアーキテクチャ

さらにオブジェクト指向のアプローチは、すべてのアイテムタイプに対してクラスを持ち、すべてのアイテムに対してインスタンスを作成することです。これはWombatクラスを作成します:Update()(この1つのwombatを更新する)のようなメソッドを使用します。

コードの観点からの差はごくわずかですが、実行時は大きく異なります。モジュール指向のソリューションは確かに高速です。オブジェクトの作成が少なく、すべてのwombatに共通する操作を簡単に最適化できます。

タイプやモジュールの数が増えると問題が発生します。各モジュールが複数のアイテムしかサポートしていないか、モジュールの複雑さが増して、1つの一般的なタイプのアイテム(例えば、太ったスリムウォーム)に対応するため、パフォーマンスの優位性がほとんど失われます。または両方。

すべてのWombatModuleが非表示のWombatオブジェクトのコレクションを保持し、そのメソッドをループ内で実行すると、少なくとも1回は悪い状態になります。

パフォーマンスが長期的な開発よりも問題になることが少ない場合、項目ごとのオブジェクトではなくモジュールを使用するアーキテクチャ上の理由を特定できますか?私は行方不明の別の可能性がありますか?

答えて

1

私はembedded software companyで働き、私たちのcode baseはかなり大きいです。コードベースは、特定の機能を実行し、いくつかのオブジェクトを維持するモジュールで設計されました。また、一部のオブジェクトは単なる独立したオブジェクトとして存在します。私たちのアプローチで見られる最大の問題は、モジュールの境界を区別することです。私たちのモジュールは、時間の経過と共に不必要に複雑になりがちであり、当初は境界の外にあった機能を実行するために徐々に成長しています。私は取るべき最良の方向は、モジュール式に設計し、非常に特定のオブジェクトを実装し、モジュールがあなたが意図したよりも大きく成長しないように努力することだと言います。

関連する問題