我正在制作系统的类图,用户可以充当学生,教师或助理。到目前为止,我已经创建了一个具有以下属性和方法的用户类,其中用户可以参与具有特定角色的单个课程,也可以从特定课程中删除。由于用户只能拥有一个角色,因此我已将其用方括号-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
答案 0 :(得分:1)
您可以使Role
抽象,然后为学生,教师和助手创建子类。这样,您只能为每个用户实例化一个子类。
或者,您可以使Role
成为枚举,其中每个枚举文字都是Role
的特定实例。这样,您可以在整个系统中实例化每个Role
之一:学生,教师和助手。
在您的系统中,如果所有用户都扮演相同的角色,或者角色中的每个用户是否都有其他信息,例如角色分配给该角色的日期用户?这个问题的答案告诉你选择哪种方法。
BTW,不是用户作为学生,教师或助手的限制,永远,有点太限制?为什么用户在另一门课程中扮演助理的角色时,不能在一门课程中扮演学生的角色?