【问题标题】:How to interpret this class diagram and relations?如何解释这个类图和关系?
【发布时间】:2022-12-14 04:27:26
【问题描述】:

你好,

我正在学习 UML,我在类图方面面临一些挑战。 我的学习资料并没有很好地解释泛化关系和抽象类主题(或者我对它的理解不够)。

以此为例。有一个类 person,其属性“名称”与 ProjectEmployee 具有泛化关系。

  1. 我认为 Person 是父母,而 Projectemployee 是孩子。所以这个人也是项目员工?

  2. 而projectemployee与projectteam有聚合关系。这是否意味着此人始终是项目团队的一员?

  3. 让“人”成为抽象类更好吗?

【问题讨论】:

    标签: uml class-diagram


    【解决方案1】:
    1. 此图表明 ProjectEmployee 是更通用的 Person 的特化。换句话说,每个ProjectEmployee都是一个Person,但可能有一些Person不是ProjectEmployee

    2. (共享)聚合与普通关联的含义相同(至少对于当前的 UML 规范而言,它没有定义其语义)。所以这意味着 ProjectEmployee 可能与 Projectteam 相关联。由于此图中未指定多重性,因此我们无法提供更多信息。只有多重性可以告诉您团队成员是否必须或可以属于一个团队。例如,钻石方的1表示成员必须属于一个团队,1..*表示成员必须至少属于一个团队,但可以同时属于多个团队。

    3. 这里没有论据表明 Person 应该是抽象的。也没有相反的说法。因此问题是:你想通过抽象来实现什么?例如,您是否有一些 Person 应该提供的操作,但通常只能为子类而不是 Person 定义?或者你想阻止Person被实例化?

    【讨论】:

    • 谢谢。清除 1. 清除。 2.如果有1..*关系怎么办。这会说 Person 始终是项目团队的一部分吗?还是不是因为人和项目员工之间的概括? 3. 使它成为抽象类的原因是什么?
    • @KeesLasser 不客气。我已经编辑了我的答案以涵盖这些方面。
    猜你喜欢
    • 2021-09-29
    • 2020-05-09
    • 2023-03-23
    • 2020-03-03
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 2018-12-31
    • 1970-01-01
    相关资源
    最近更新 更多