概念化:概括与否?

时间:2014-05-25 13:56:21

标签: uml modeling generalization

我正在建模一个应用程序,让用户可以查找房地产属性。因此,它将成为一个网站,用户可以在这里寻找房屋,公寓,城堡,场地,商店,停车场,办公室的租赁和销售。据此,我在课堂图中犹豫不决。我应该从RealEstateProperty类中概括上面写的所有类型的房地产属性,还是应该将它与一个TypeOfRealEstate类相关联,知道类型“Ground”例如也可以作为房地产属性的基础像房子或城堡的财产。停车场也可以是房产和停车场。

任何人都知道最好的方法是什么?提前谢谢。

1 个答案:

答案 0 :(得分:1)

这取决于您的系统必须实现的不同RealEstates的功能。课程的功能包括属性,方法和关联

  1. 如果所有潜在的RealEstates都具有相同的功能,例如ID, 类型 ,价格,日期和响应代理,并且您不需要为了进一步区分它们,相关类型将完成工作。将RealEstateType建模为Enum(如果您希望添加新类型,甚至是类),并将其与单个RealEstate类关联。

  2. 如果另一个极端的不同RealEstates需要具有不同的功能,则需要从基础抽象类继承它们。例如,Ground具有属性" area&#34 ;,而building具有"楼层数"。甚至方法可以是不同的或关联。

  3. 按照您的示例,您想要将Ground链接到House。这在第二版中更加清晰 - 只是Ground和House类之间的关联。在一个版本中,您必须将RealEstate与自身链接并添加空间限制(非常"丑陋"设计)。

    总之,尝试考虑不同RealEstates的功能,并根据差异使您的RealEstate层次结构

    您最终可以使用一个或几个类。 :)尽量保持这个层次结构尽可能简单(更少的类),但足以明确标记它们的不同功能。