【发布时间】:2016-07-19 04:30:30
【问题描述】:
在设计类图时,我对基数/多重性感到困惑。 我的主要困惑是何时表示 1---* 关系。例如,在乘客和座位等级的情况下,乘客将被分配到一个座位,因为座位可以在 A POINT IN TIME 分配给一名乘客,但在其存在的一段时间内,它可以分配给许多乘客。
那么座位应该是 ---> 乘客是 1-1 还是 1-*?
【问题讨论】:
标签: uml class-diagram ooad multiplicity
在设计类图时,我对基数/多重性感到困惑。 我的主要困惑是何时表示 1---* 关系。例如,在乘客和座位等级的情况下,乘客将被分配到一个座位,因为座位可以在 A POINT IN TIME 分配给一名乘客,但在其存在的一段时间内,它可以分配给许多乘客。
那么座位应该是 ---> 乘客是 1-1 还是 1-*?
【问题讨论】:
标签: uml class-diagram ooad multiplicity
让我们总结一下:
Passenger 将被分配给一个Seat (1)。开放式问题:Passenger 在分配之前是否已经存在(即 1 或 0..1)? Seat 可以分配一个Passenger 但它可能保持为空(所以0..1)Passenger 可以分配到多个座位(每个航班一个)Seat 可以分配许多Passenger。 结论:Seat和Passenger之间的关系是*-*(多对多)
【讨论】:
这完全取决于您的模型。
等等
我可以想象很多其他的可能性。
这个想法是您对特定系统进行建模,并且您需要代表特定的业务需求。多样性将取决于此。根据经验,您对某个时间点的情况感兴趣(请注意,在我的最后两个示例中,您正在处理某个时间点的座位分配历史记录)。
所以我的结论是:没有简单的答案。
【讨论】: