我想塑造一个机场和一个城市,我想选择两者之间的适当分解关系,但我似乎无法决定选择哪一个,因为他们都有不同的关系。
一个城市可以独立存在,不需要一个机场,因此我想说,城市-机场连接是一个集合。
一个机场需要一个城市,如果没有一个城市的组成关系,它就不会存在。
有可能有两种关系吗?一种是城市->机场,另一种是机场->城市,但我觉得很奇怪,因为一种构图对我来说就像是一种关系,应该由两个人而不仅仅是一个人来尊重。
发布于 2018-03-12 10:42:55
这是一个广泛的误解,类之间的关系主要是“聚合”或“合成”。我认为这个不幸的传统已经在C++社区中建立起来了。
相反,类之间最重要的关系是“关联”,因为它们在UML类模型/图中被调用。因此,如果您想要模拟City和Airport之间的关系,您可能希望选择一对多的关联(因为一个城市可能有多个机场,但任何机场都分配给城市)。

在UML中,聚合和组合都是关联的特殊情况,用于表示两个类的实例之间的部分整体关系。由于机场实际上不是城市的一部分,而只是与之相关的,所以City和Airport之间既没有组成也没有聚合,而只是一个普通的关联。
在许多情况下,我们可能会怀疑一个组合是否是一个组合,将它建模为一个简单的组合是更安全的。
将关联建模为组合的唯一理由是,组件类型的实例是“弱实体”,没有自己的标识(对象ID)。但是机场确实有他们自己的身份证,所以没有必要,也没有收益,把他们建模成一个城市的组成部分。
https://stackoverflow.com/questions/49232897
复制相似问题