職場でサーバーとアプリケーションのモデルを構築しようとしています。サーバーは多くのアプリケーションをホストできます。アプリケーションは、多数のサーバーでホストできます。
通常は、ホスト クラスに List を含め、アプリケーション クラスに List を含めます。ただし、特定のホストとアプリケーションの関係に固有のフィールドがいくつかあります。たとえば、UsedMb は、ホスト上のアプリケーションによって使用されるディスク容量を表します。
もちろん、UsedMb フィールドを保持する中間オブジェクトを表す HostedApplicationclass を持つこともできます。Host クラスと Application クラスの両方に List が含まれます。
ただし、問題は、アプリケーションが Host クラスに含まれるホストのいくつかの側面についても知る必要があることです (たとえば、ホストは地理的に分散しています。アプリケーションは、ホストされているデータ センターの数を知る必要があります)。であるため、すべてのホストの DC 名を確認できる必要があります。
代わりに、HostedApplication クラスに、それが参照する Host オブジェクトと Application オブジェクトの両方への参照を保持させることができます。しかし、場合によっては、すべてのアプリケーション (場合によってはすべてのホスト) をループする必要があります。したがって、必要に応じて 3 つすべてをループできるようにするには、List、List、List の 3 つの個別のリストが必要です。
私の基本的な質問は、この種の構成を処理する標準的な方法は何ですか? すべてのオプションには長所と短所があります。最後に挙げたオプションが最も正しいように思えますが、リストを 3 つ持つのはやり過ぎですか? よりエレガントなソリューションはありますか?