我在创建软件设计时遇到了问题。
我有一个学生名单,每个学生可以选择一个或多个他们可以学习的科目(学生和科目类名称属性),每个学生和科目,一些学习伙伴(其他学生)必须被分配。
例如:
名字的学生名单可以是S1,S2,S3,S4。
名称的主题列表可以是SU1,SU2,SU3,SU4。
现在为学生分配科目
S1 - > SU1,SU3
S2 - > SU1,SU4
S3 - > SU2,SU3,SU4
S4 - > SU1,SU4
现在,对于每对学生和学科,我们可以拥有或不能拥有学习合作伙伴
PS:除了他自己以外的任何学生。
S1,SU1 - > S2,S4
S1,SU3 - > S4
S2,SU1 - > NULL(没有研究伙伴)
S2,SU4 - > S3
S3,SU2 - > S1,S2
S3,SU3 - > NULL(没有研究伙伴)
S3,SU4 - > S4
S4,SU1 - > S1,S2
感谢任何人设计此模型的帮助(UML图或示例代码)。我想到了关联类,但不确定它是如何适合的。
答案 0 :(得分:2)
你可能有一个包含Subject
和StudyPartner
概念的课程,就像SubjectWrapper
一样,
class SubjectWrapper
{
Subject subject;
List<Student> studyPartners
}
而不是列出Subject
,每个学生都会有一个SubjectWrapper
列表,从而包含主题和作为学习伙伴的学生列表。
class Student
{
// Name, Age, and what not...
List<SubjectWrapper> subjects;
}
在这种情况下,空列表将代表没有研究伙伴。