故事:
老师提问: 1+1= ?
学生: 开始进行计算。
学生给出答案并告诉老师,老师宣布答案。
老师调用学生,学生回调老师。
由于老师有多个,提出的问题可能有多种,对应的答案也不同,因此抽象一下,把宣布答案定义成接口。
public interface ClaimAnswer{
void claimAnswer(String result);
}
public class Teacher implements ClaimAnswer{
private Student student;
public Teacher(Student student) {
this.student = student;
}
public void question(){
System.out.println("提出问题,1+1=?");
student.answerQuestion(this);
}
public void claimAnswer(String result) {
System.out.println("学生给出的答案是:"+result);
}
}
public class Student {
public void answerQuestion(CallBack callBack) {
System.out.println("学生解答问题,进行计算。。。。");
String result = "2";
callBack.answer(result);
}
}
public class Test {
public static void main(String[] args) {
Student student = new Student();
Teacher teacher = new Teacher(student);
teacher.question();
}
}
提出问题,1+1=?
学生给出的答案是:学生回答:2
图示: