表示 class 与其自身之间的关联
Representing associations between a class and itself
我有一位 class 导师,在某些情况下 class 可以担任课程协调员,我可以使用递归关联来表示这种关系吗?
我一开始是这样代表协会的,我觉得不对
快速修复
在你的图表中你声称 all Tutors
are coordinating
正好是一个 Course
.这是 1
being the same as 1..1
的结果。但这不是你的叙述所说的:
some instances of that class can be course coordinators.
因此,您应该用 0..1
替换 Course
侧的多重性。它会翻译一些 Tutors
可以是 coordinating
一个 Course
(但不是全部)。
另一种选择
不便之处在于模型没有定义Course Coordinators
。也许这只是措辞,并不重要。但可能还有更多关于 Course Coordinator
的内容可以证明单独的 class 具有额外的属性和行为:
如果是特殊的Tutor
,就把它做成特化,让这个额外的class有coordinating
关联。
如果这是一个 Tutor
和其他 classes (Professor
, Assitant
, ...) 可以的特殊角色接受,你最好在 OOP 中选择 composition over inheritance (object composition 对应于 UML 关联)。 Tutor
和 Course Coordinator
之间的关联将显示为“扮演角色”。
不相关:
再问你几个问题(只是为了确保多重性表达你的意思):
- 一个特定的
Course
可以由几个 Tutors
教授?
- 没有
Tutor
可以教不止一个Course
?
- 一个特定的
Course
可能没有导师进行教学(因为 *
意味着 0..*
)?
- 同一个
Course
可以由几个人协调Tutors
?
我有一位 class 导师,在某些情况下 class 可以担任课程协调员,我可以使用递归关联来表示这种关系吗? 我一开始是这样代表协会的,我觉得不对
快速修复
在你的图表中你声称 all Tutors
are coordinating
正好是一个 Course
.这是 1
being the same as 1..1
的结果。但这不是你的叙述所说的:
some instances of that class can be course coordinators.
因此,您应该用 0..1
替换 Course
侧的多重性。它会翻译一些 Tutors
可以是 coordinating
一个 Course
(但不是全部)。
另一种选择
不便之处在于模型没有定义Course Coordinators
。也许这只是措辞,并不重要。但可能还有更多关于 Course Coordinator
的内容可以证明单独的 class 具有额外的属性和行为:
如果是特殊的
Tutor
,就把它做成特化,让这个额外的class有coordinating
关联。如果这是一个
Tutor
和其他 classes (Professor
,Assitant
, ...) 可以的特殊角色接受,你最好在 OOP 中选择 composition over inheritance (object composition 对应于 UML 关联)。Tutor
和Course Coordinator
之间的关联将显示为“扮演角色”。
不相关:
再问你几个问题(只是为了确保多重性表达你的意思):
- 一个特定的
Course
可以由几个Tutors
教授? - 没有
Tutor
可以教不止一个Course
? - 一个特定的
Course
可能没有导师进行教学(因为*
意味着0..*
)? - 同一个
Course
可以由几个人协调Tutors
?