这是它的子集,为什么不能用泛化关系

jeri 2023-12-30 17:07

发车停站和停站是否同一个概念,把发车停站修改成检票口是否也可以 ?

UMLChina潘加宇

不是同一个概念,灰色部分是列车时刻表的计划,发车是指某个车次每天发的车。

由于各种原因,某一天的发车不是每个停站都按计划停,而且实际的到达时间和开车时间也不一样。

还是叫发车停站更好,如果需要关注检票口的更多属性,可以添加检票口类,关联到发车停站。图中直接合并到发车停站,是因为符合合并的条件:最多关联一个检票口,而且检票口只关注一个属性。

jeri 2023-12-30 20:23

发车停站是不是停站子集?可不可以用泛化关系来获取超类特征呢?

UMLChina潘加宇

这不是一回事。不能拿个体和集合比。

泛化是说:B全集是A全集的真子集,你这个相当于:某个C里面的A集合是A全集的子集。

如果是这样,所有的关联都可以变成泛化了。

性别={男,女} ,某个人的性别只有一个,是{男,女} 的子集,所以人是性别的子类。

关联引用的对象本来就是从对象全集里面挑的。

所有70亿人的性别集合,去除重复项,就是“性别”集合的子集(如果男人死光了只剩女人,就是真子集)

上亿条发车停站中的停站集合,去除重复项,就是停站全集的子集。

用关系数据库类比,相当于“外键是另一个表的主键”,这个知识与特定领域没有关系。

不过,正如我之前说过很多次的,一旦把与特定领域没有关系的知识加到某个领域上,就可以达到(选择性)批量刷废话的效果。

就像我之前看过的某篇领域驱动设计文章,说发现了一个领域规则,订单购买的商品必须是商品中的一员。照此推理,所引用的订单必须是订单中的一员……都可以来一遍。


weixinpanjiayu2