我正在建模一个应用程序,它可以让用户寻找房地产。因此,它将成为一个网站,用户可以在其中查找房屋、公寓、城堡、场地、商店、停车场、办公室的出租和销售信息。据此,我在类图中犹豫不决。我应该从类 RealEstateProperty 中概括所有类型的房地产,还是应该只将其关联到一个 TypeOfRealEstate 类,知道例如“Ground”类型也可以作为房地产的基础房屋或城堡之类的财产。停车场也可以是房地产,也可以是房屋的停车场。
任何人都知道最好的方法是什么?提前致谢。
我正在建模一个应用程序,它可以让用户寻找房地产。因此,它将成为一个网站,用户可以在其中查找房屋、公寓、城堡、场地、商店、停车场、办公室的出租和销售信息。据此,我在类图中犹豫不决。我应该从类 RealEstateProperty 中概括所有类型的房地产,还是应该只将其关联到一个 TypeOfRealEstate 类,知道例如“Ground”类型也可以作为房地产的基础房屋或城堡之类的财产。停车场也可以是房地产,也可以是房屋的停车场。
任何人都知道最好的方法是什么?提前致谢。
这取决于您的系统必须实现的不同房地产的哪些功能。类的特性包括属性、方法和关联。
如果您所有的潜在房地产都具有相同的特征,例如 ID、类型、价格、日期和负责代理,并且您不需要进一步区分它们,那么关联的类型就可以完成工作。将 RealEstateType 建模为 Enum(甚至类,如果您希望添加新类型)并将其关联到单个 RealEstate 类。
如果不同的房地产,在另一个极端,需要有不同的特性,你将需要从基抽象类继承那些。例如,地面有一个属性“面积”,而建筑物有一个“楼层数”。甚至方法也可以不同,或关联。
按照您的示例,您希望将 Ground 链接到 House。这在第二个版本中更加简洁——只是 Ground 和 House 类之间的关联。在一类版本中,您必须将 RealEstate 与其自身链接并添加空间限制(非常“丑陋”的设计)。
综上所述,试着思考不同房地产的特点,并根据它们的差异来制作你的房地产层次结构。
您最终可以得到一个班级或几十个班级。:) 尽量保持这种层次结构尽可能简单(更少的类),但足以清楚地标记它们的不同特征。