Шаблон проектирования для добавления нового класса - PullRequest
1 голос
/ 22 декабря 2010

У меня есть два класса, ученик и учитель, ученик имеет один конкретный метод: takeCourse;У учителя есть один конкретный метод: teachCourse.

Теперь я хочу добавить новый класс, GradStudent, который может пройти курс, как студент, а также может преподавать курс, как учитель.Какой шаблон является самым простым способом реализации этого нового класса?Адаптер, Композит, Делегат ....?

Спасибо.

1 Ответ

2 голосов
/ 22 декабря 2010

Вопрос должен заключаться в том, как лучше всего смоделировать это, для чего ответом будет «то, как это имеет смысл в реальном мире», т. Е. Аспирант также может преподавать и проходить курс; -)

Не пытайтесь связать все с шаблонами дизайна. Придерживайтесь основного принципа, который мы усвоили в школе «Классы моделей объектов реального мира», «Держите модель ближе к реальному миру»

interface CanTeach
{
void teachCource();
}

class Teacher implements CanTeach {...}

class Student 
{
void takeCourse(...);
}

class GradStudent extends Student implements CanTeach
{
...
}
...