我在创建软件设计时遇到了一个问题。
我有一份学生名单,每个学生都可以选择他们可以学习的一个或多个科目(具有名称属性的学生和主题类),而且对于每一对学生和主题,必须分配一些学习伙伴(其他学生)。
例如:
有名字的学生名单可以是S1,S2,S3,S4。
具有名称的主题列表可以是SU1、SU2、SU3、SU4。
现在把科目分配给学生
S1 -> SU1,SU3
S2 -> SU1,SU4
S3 -> SU2,SU3,SU4
S4 -> SU1,SU4
现在,对于每一对学生和科目,我们可以有或不可能有学习伙伴。
除了他自己以外的任何学生。
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图或示例代码)。我考虑过联想类,但不确定它是如何适合的。
发布于 2013-10-02 17:53:17
您也许可以有一个围绕Subject和StudyPartner概念的类,比如SubjectWrapper,其中
class SubjectWrapper
{
Subject subject;
List<Student> studyPartners
}而不是有一个Subject的列表,每个学生将有一个SubjectWrapper列表,从而包装的主题和学生名单的学习伙伴。
class Student
{
// Name, Age, and what not...
List<SubjectWrapper> subjects;
}在这种情况下,一个空的列表将不代表研究伙伴。
https://stackoverflow.com/questions/19143294
复制相似问题