很简单的问题,但我想看看专家是如何看待它的。
这只是想象中的软件,只是为了理解OOP。我有一个学校管理软件。所以我有课
现在我指派一位老师担任某一特定教室的班主任.因此,ClassRoom包含
Teacher classTeacher;
Student[] students; 现在整个程序都写好了一切都很好..。
问题:
现在,如果校长提出了一条新的规则,那就是不应该有一个老师是家长的学生。现在,我们需要为一个小的需求在代码中带来更多的参数和大量的更改。设计应该如何才能使需求的未来更改(这将不可避免地)只需要对代码进行微小的更改?
发布于 2011-06-04 14:01:34
这不应该是一个大的代码更改,这应该是一个验证更改。
Psuedo代码:
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 { }当然,您必须进入数据库和代码库,并向所有学生添加“父”属性。但这也不应该太难。
https://stackoverflow.com/questions/6237102
复制相似问题