如何使用关联类?

时间:2013-10-02 17:41:09

标签: oop

我在创建软件设计时遇到了问题。

我有一个学生名单,每个学生可以选择一个或多个他们可以学习的科目(学生和科目类名称属性),每个学生和科目,一些学习伙伴(其他学生)必须被分配。

例如:

名字的学生名单可以是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

S4,SU4 - > S3

感谢任何人设计此模型的帮助(UML图或示例代码)。我想到了关联类,但不确定它是如何适合的。

1 个答案:

答案 0 :(得分:2)

你可能有一个包含SubjectStudyPartner概念的课程,就像SubjectWrapper一样,

class SubjectWrapper
{
    Subject subject;

    List<Student> studyPartners
}

而不是列出Subject,每个学生都会有一个SubjectWrapper列表,从而包含主题和作为学习伙伴的学生列表。

class Student
{
    // Name, Age, and what not...

    List<SubjectWrapper> subjects;
}

在这种情况下,空列表将代表没有研究伙伴