考虑下面的类图:
+--------+ * +------------+
| Person |------>| Property |
+--------+ +------------+
^
|
+--------+------+
| |
+----+----+ +------+-----+
| Car | | House |
+---------+ +------------+
Person 有许多属性,包括 Car、House、Smartphone 等。这些属性中的每一个都有不同的属性(Car 有一个引擎大小、型号、年份……House 作为地址、大小等)。有许多子类(属性类型)。
现在我的实现是让 Property 是一个带有类型字段的抽象类。我检查类型并将其转换为正确的子类。
我的问题是:这是唯一的方法吗?这是正确的方法吗?感觉不太对劲,所以请与我分享您的设计想法。一个根本性的改变也将被接受。