简单的设计问题:父母,孩子;教师,学生

时间:2011-06-04 13:50:25

标签: oop class-design

非常简单的问题,但我想看看专家如何看待它。

这只是想要了解OOP的虚构软件。 我有一个学校管理软件。所以我有课程

  • 学生
  • 教室
  • 老师

现在我指派一名教师担任特定教室的班主任。从而 ClassRoom包含

Teacher classTeacher; 
Student[] students; 

现在编写完整的程序,一切正常......

问题:

现在如果校长提出新规则,那么教师不应该是父母的学生。 现在我们需要在代码中引入更多参数和大量更改,以满足一个小的需求。 为了将来的需求变化(这将不可避免地发生)只需要对代码进行微小的更改,设计应该如何进行?

1 个答案:

答案 0 :(得分:2)

这不应该是一个很大的代码更改,这应该是一个验证更改。

<强>伪代码:

Class ClassRoom {
    List<Student> students
    Teacher teacher

    ClassRoom(Teacher _teacher, List<Student> students) {
        teacher = _teacher;
        SetStudents(students);
    }

    void SetStudents(List<Student> _students) {
         foreach (Student s in _students) {
             if (validate(s)) {
                 students.add(s);
             } else {
                 // error handling logic
             }
         }
    }

    void validate(Student student) {
        if (student.parent == teacher) {
            return false;
        }
        return true;
    }
}

class Student : Person {
    Person parent
}

class Teacher : Person { }

当然,您将不得不进入数据库和代码库,并为所有学生添加“父”属性。但这也不应该太难。