2016-06-07 27 views
1

我正在阅读关于UML类图的教程,我在理解关联类时存在问题,以及为什么这个MileageCredit类不是下面示例中的FrequentFlyer类的一部分(摘自教程here的图11):如何识别UML关联类的适当实现?

enter image description here

假设它是FrequentFlyer和MileageCredit(如果一个人有两个FrequentFlyer成员,他们会仍然有不同的frequentFlyerNumber数字),那么我只想把这些baseMiles和​​性质之间的一到一个关系FrequentFlyer类本身。

有人能解释为什么这是错误的吗?

+0

这与用例无关。请相应修改您的主题。 – Ister

+0

谢谢 - 希望标题现在清除 – Bendy

+0

是的,现在它更清晰。 – Ister

回答

2

MileageCredit是一个AssociationClass,这意味着它同时是一个Association(链接)Flight和FrequentFlyer)和一个描述该Association的类。这个事实通过连接类和关联的虚线来描述。请注意,根据UML规范,这些类和关联一起创建一个实体。

在您的示例中,FrequentFlyer和Flight之间有Association(称为MileageCredit)。您可能会认为这显示了FrequentFlyer的飞行。至于这些协会,您需要额外的信息(颁发给FrequentFlyer的本次航班的奖励和奖励里程数),此关联有此额外的类描述此信息。

如果您在FrequentFlyer上创建了与协会绝对没有任何关系的baseMiles和bonusMiles,则只会获得有关向FrequentFlyer授予总积分的信息。

+0

另请注意,在代码级别上,MileageCredit可能会成为FrequentFlyer拥有的与Flight相关联的类别,或者是与Flight和FrequentFlyer关联的单独类别。 – Ister

+0

谢谢 - 我认为这是我混淆了它与数据库模式的混淆 – Bendy

+0

可以想到一个关联类位于(通常)两个类之间,并将它们与1-m * n-1关系连接起来(*是关联-类)。 –