最近我被要求设计处理学生/教师/学期/课程实体的课程应用(Java)模型。这就像电子表格设计问题。
条件是:学生可以报名参加由某位老师教授的课程,在一个特定时间发生一个学期,比如第二学期。
学生可能有多门课程,由多位教师(每位教师教授一门特定课程)多次教授(每门课程都在一个独特的学期开课)。 因此,学生+课程+教师+学期的组合是独一无二的。
什么是更智能的设计?
我最初是从一个有学生ID和地图的课程开始的,其中地图的'key'值设置为Course-id,'value'设置为另一个类,例如TeacherSemester。 TeacherSemesterclass包含TeacherId和SemesterId值。
但这似乎不是一个可扩展的解决方案。 谁能提出更好的设计? 任何讨论都会有所帮助。
Thaks
答案 0 :(得分:1)
老师和学生都是角色,他们不是班级。
class Person
{
string Name
}
class Course
{
List<Person> enrolledStudents
List<Person> teachers
Semester semester
CourseTime time
}
class Application
{
List<Course> courses
List<Person> persons
List<Semesters> semester
List<CourseTime> courseTimes
}