如何在类图中指定多个选项?

时间:2017-04-01 20:42:22

标签: uml class-diagram

我正在制作系统的类图,用户可以充当学生,教师或助理。到目前为止,我已经创建了一个具有以下属性和方法的用户类,其中用户可以参与具有特定角色的单个课程,也可以从特定课程中删除。由于用户只能拥有一个角色,因此我已将其用方括号-Participant: Role [1]声明。

但是,它只表示用户可以拥有一个角色,但它没有说明用户的不同角色。如何在类图中指定它。我应该创建一个新的Role类,还是可以在user类中指定?

USER CLASS:
Attributes:
-username: String
-password: String
-Participant: Role [1]
Methods:
+participate(course: Course, role: Role): void
+remove_user(course: Course): void
+get_average(assignment: Assignment): int

1 个答案:

答案 0 :(得分:1)

您可以使Role抽象,然后为学生,教师和助手创建子类。这样,您只能为每个用户实例化一个子类。

或者,您可以使Role成为枚举,其中每个枚举文字都是Role的特定实例。这样,您可以在整个系统中实例化每个Role之一:学生,教师和助手。

在您的系统中,如果所有用户都扮演相同的角色,或者角色中的每个用户是否都有其他信息,例如角色分配给该角色的日期用户?这个问题的答案告诉你选择哪种方法。

BTW,不是用户作为学生,教师或助手的限制,永远,有点限制?为什么用户在另一门课程中扮演助理的角色时,不能在一门课程中扮演学生的角色?