详细讲解java回调机制

程序员界的彭于晏 2018-12-04 10:50:00

所谓回调,就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法

一个通俗的例子:

一天,我打电话向你请教问题,当然是个难题,你一时想不出解决方法,我又不能拿着电话在那里傻等,于是我们约定:等你想出办法后打手机通知我,这样,我就挂掉电话办其它事情去了。过了XX分钟,我的手机响了,你兴高采烈的说问题已经搞定,应该如此这般处理。故事到此结束。这个例子说明了“异步+回调”的编程模式。其中,你后来打手机告诉我结果便是一个“回调”过程;我的手机号码必须在以前告诉你,这便是注册回调函数;我的手机号码应该有效并且手机能够接收到你的呼叫,这是回调函数必须符合接口规范。

通过上面个人感觉到回调更多的应用就是结合异步。比如:Ajax中js通过组件和服务器的异步通信。

例如,假定当某一事件发生时会得到通知,我们可以定义一个interface:

详细讲解java回调机制

当一事件发生时,需要通知实现Event 接口的对象,并调用Event() 方法。

详细讲解java回调机制

在这个例子中,用somethingHappened 来标志事件是否发生。

希望接收事件通知的类必须要实现Event 接口,而且要把自己的引用传递给事件的通知者。

详细讲解java回调机制

以上是通过一个非常简单的例子来说明Java中的回调的实现。

当然,也可以在事件管理或事件通知者类中,通过注册的方式来注册多个对此事件感兴趣的对象。

  1. 定义一个接口Event ,回调方法Event(String event) 简单接收一个String 参数。

详细讲解java回调机制

  1. 实现Event接口,事件处理类

详细讲解java回调机制

  1. 事件管理者,或事件通知者

详细讲解java回调机制

  1. 测试

详细讲解java回调机制

差不多就是这样了。

猜你喜欢

转载自blog.csdn.net/LMAKE_nbsp/article/details/85488517