【问题标题】:Representing associations between a class and itself表示类与其自身之间的关联
【发布时间】:2022-01-02 04:33:50
【问题描述】:

我有一个班级 Tutor 并且该班级的一些实例可以是课程协调员,我可以使用递归关联来表示关系吗? 我一开始就是这样表示联想的,我觉得不正确

【问题讨论】:

    标签: uml associations diagram class-diagram


    【解决方案1】:

    快速修复

    在您的图表中,您声称 all Tutors coordinating 恰好是一个 Course。这是1 being the same as 1..1 的结果。但这不是你的叙述所说的:

    一些该类的实例可以是课程协调员。

    因此,您应该将Course 一侧的多重性替换为0..1。它可以翻译一些Tutors 可以是coordinatingCourse(但不是全部)。

    另一种选择

    不便之处在于模型没有定义Course Coordinators。也许这只是措辞,并不重要。但可能还有更多关于 Course Coordinator 的内容可以证明具有额外属性和行为的单独类是合理的:

    • 如果它是一种特殊的Tutor,只需将其专门化,并让这个附加类具有coordinating 关联。

    • 如果这是Tutor 以及其他类(ProfessorAssitant、...)可以承担的特殊角色,您最好选择composition over inheritance(OOP 中的object composition 对应于UML 关联)。 TutorCourse Coordinator 之间的关联将显示为“具有角色”。

    不相关:

    向您提出几个额外的问题(只是为了确保多重性说明您的意思):

    • 一个特定的Course 可以由多个Tutors 教授?
    • 没有Tutor可以教多个Course
    • 一个特定的Course 可能没有Tutor 进行教学(因为* 表示0..*)?
    • 同一个Course可以由多个Tutors协调?

    【讨论】:

    • 1- 是 2- 否 导师可以教多门课程 3- 否,我已经将复数改为 1..*,4- 是
    • 我也在导师端将教学关联的多样性改为1..*
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    相关资源
    最近更新 更多