1

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

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

例如:

学生名单可以是 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 图或示例代码)。我考虑过关联类,但不确定它如何适合。

4

1 回答 1

2

您也许可以有一个包含 and 概念的类SubjectStudyPartner例如 a SubjectWrapper,其中

class SubjectWrapper
{
    Subject subject;

    List<Student> studyPartners
}

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

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

    List<SubjectWrapper> subjects;
}

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

于 2013-10-02T17:53:17.877 回答