/**
* Add a student to this school.
* @param student The student to be added.
*/
public void addStudent(Member student)
{
students.add(student);
}
public void setTeacher(Member teacher)
{
this.teacher = teacher;
}
我有两个名为student和teacher的成员子类。我不希望用户能够将教师添加到学生列表中,或者将学生设置为教师。有没有办法在不使用instanceof的情况下执行此操作?哈哈,我只是不喜欢我的班级图表看起来像什么。
这是顺便做作业。我想我已经完成了所有这些,但只是想知道是否有一个简单的解决方案。我只想避免在本课程中明确说明学生或教师。
答案 0 :(得分:1)
一个解决方案是使用GetClass()方法或Visitor Pattern。
但是如果你想避免这种情况,为什么你在第一时间使用Polymorphism
呢?在教师或学生的方法实例中用作强类型。
public void setTeacher(Teacher teacher)
{
this.teacher = teacher;
}