答案 0 :(得分:1)
我想我理解你的问题,虽然评论者试图向你解释,你却没有清楚地问过它。我相信你在询问你的课程之间应该使用什么类型的关联。
组合关联,您似乎部分理解,意味着组合关系中对象的生命周期取决于它所属的对象。
然后,您的第一张图表示您的火车由火车站组成,因此如果没有火车,则不再有任何火车站。这显然不是真的;其他列车可以停在同一站点。此外,您的火车可能会与一条路线相关联。对象,它将是多个停靠点的集合。我会让你详细说明。
您的下一张图表示列车(至少部分地)由乘客组成,因此如果列车被摧毁,则不再有乘客。但是乘客可以换乘火车并继续成为乘客,因此您不会在列车和乘客之间建立合成关系。乘客乘坐火车,火车可能有也可能没有乘客,所以你有一个简单的联系(没有任何类型的钻石)。
最后,您的上一张图表说可用路线由城市组成。这似乎是合理的。但是,还存在一个问题,即某个城市可能是不同路线的成员。如果是这样的话,最好说一个特定的城市"有#34;与之相关的一些路线。在这种情况下,城市端会有一颗白色钻石。当然,如果你这样做,你将不得不重新考虑你的distance_between
属性。最好创建一个distance
类,它本身与两个且只有两个城市对象相关联。