請負業者が住宅の図を作成するために使用する Java アプリケーションを設計しています。現在、私はモデリング段階にあり、UML クラス図を作成しています。私の問題は、オブジェクトの一部をモデル化する理想的な方法がわからないことです。ユーザーは、壁、照明、ドア、窓などの家の要素を「描画」します。各要素には、必要なプロパティの初期セットがあります。この必須プロパティの初期セットに基づいて、その要素にはさまざまなプロパティのサブセットが必要になります。
Structure クラスを例として使用します。ユーザーがダイアグラムに「描く」ものの 1 つに構造があります。構造体の 2 つの主なプロパティは、structureType と composition です。構成は簡単です。クライアントは、ユーザーが選択できるコンポジションのリストを提供するので、そのデータをコンボ ボックスに入れ、ドロップダウンから選択できるようにします。ただし、structureType に基づいて、追加のプロパティが必要になります。
IE) StructureType = Wall の場合、長さと高さが必要です。StructureType = Ceiling の場合、長さ、幅、高さがすべて必要です。
この例は単純化されており、些細なことに思えるかもしれませんが、サブプロパティはこれよりもはるかに複雑になる可能性があり、それらの多くがあります。それらのいくつかは、さらにサブプロパティを生じさせます。ただし、単純化しすぎているにもかかわらず、解決しようとしている問題のかなり具体的なアイデアが得られます。
私の考えでは、Structure を拡張するサブクラスが必要であり、それぞれが各サブクラスに固有の一連のプロパティを持ちます。IE) class Wall はクラス Structure を拡張し、Wall に固有のメンバー変数のグループを含みます。
私がこれについて明確に考えているかどうかについてのアドバイスをいただければ幸いです。また、私が基地から外れている場合は、正しい方向へのプッシュをいただければ幸いです。同様に、意思決定の際に見逃した考慮事項がある場合は、建設的な批判を歓迎します。