非常简单的问题,但我想看看专家如何看待它。
这只是想要了解OOP的虚构软件。 我有一个学校管理软件。所以我有课程
现在我指派一名教师担任特定教室的班主任。从而 ClassRoom包含
Teacher classTeacher;
Student[] students;
现在编写完整的程序,一切正常......
现在如果校长提出新规则,那么教师不应该是父母的学生。 现在我们需要在代码中引入更多参数和大量更改,以满足一个小的需求。 为了将来的需求变化(这将不可避免地发生)只需要对代码进行微小的更改,设计应该如何进行?
答案 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 { }
当然,您将不得不进入数据库和代码库,并为所有学生添加“父”属性。但这也不应该太难。