回调机制

故事:
老师提问: 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

图示:

未命名文件 (2).jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容