我有两个班,学生和老师,学生有一个具体的方法:takeCourse;老师有一个具体的方法:教学课程。
现在我想添加一个新的GradStudent课程,它可以像学生一样学习课程,也可以像老师一样教授课程。哪种模式是实现这个新类的最简单方法? Adapter,Composite,Delegate ....?
感谢。
答案 0 :(得分:2)
问题应该是对这种模型进行建模的最佳方式是什么?答案是“它在现实世界中的理解方式”,即格拉德学生也可以教授和选修课程; - )
不要试图将所有内容与设计模式联系起来。坚持我们在学校学到的基本原则“课堂模拟现实世界的对象”,“让模型贴近现实世界”
interface CanTeach
{
void teachCource();
}
class Teacher implements CanTeach {...}
class Student
{
void takeCourse(...);
}
class GradStudent extends Student implements CanTeach
{
...
}