0

ユーザーが不動産物件を検索できるようにするアプリをモデル化しています。つまり、ユーザーが住宅、アパート、城、敷地、店舗、駐車場、オフィスの賃貸物件や販売物件を探すことができる Web サイトになる予定です。それによると、クラス図で迷っています。上記の不動産プロパティのすべてのタイプをクラス RealEstateProperty から一般化する必要がありますか、それともクラス TypeOfRealEstate に関連付けるだけでよいでしょうか。家や城のような物件。また、駐車場は、住宅の駐車場だけでなく、不動産物件でもあります。

誰でもそれを行うための最良の方法は何ですか? 前もって感謝します。

4

1 に答える 1

1

システムが実装しなければならないさまざまな RealEstates の機能によって異なります。クラスの機能には、属性、メソッド、および関連付けが含まれます。

  1. 潜在的なすべての不動産が同じ機能 (ID、タイプ、価格、日付、担当エージェントなど) を持っていて、それらをさらに区別する必要がない場合は、関連するタイプが機能します。RealEstateType を Enum (新しい型を追加する場合はクラス) としてモデル化し、単一の RealEstate クラスに関連付けます。

  2. 別の極端な例として、異なる RealEstates に異なる機能が必要な場合は、基本抽象クラスからそれらを継承する必要があります。たとえば、地面には「面積」という属性があり、建物には「階数」という属性があります。メソッドでさえ、異なる場合もあれば、関連付けが異なる場合もあります。

あなたの例に従って、地面を家にリンクしたいと思います。これは、2 番目のバージョンでははるかに明確になりました。Ground クラスと House クラスの間の関連付けだけです。1 クラス バージョンでは、RealEstate をそれ自体にリンクし、空間的な restrictopns (非常に「醜い」設計) を追加する必要があります。

要約すると、さまざまな RealEstates の機能について考え、それらの違いに基づいて RealEstate 階層を作成してみてください。

最終的には、単一のクラスまたは数十のクラスになる可能性があります。:) この階層をできるだけ単純に(クラスを減らして)維持するようにしてください。ただし、さまざまな機能を明確にマークするのに十分です。

于 2014-05-25T21:49:52.390 に答える