美文网首页
Java 回调函数理解

Java 回调函数理解

作者: young_dreamer | 来源:发表于2018-07-28 00:49 被阅读231次

回调的意义在于,通过在其他对象中调用自身类中定义的函数,达到一定的目的(常见于事件注册,监听以及线程Runnable中的run)。

举例一:Parent类是接口,自带oncall函数(用于被其他任何人电话联系),父亲类Father实现Parent接口并重写oncall方法,Father类带有成员孩子类Children。Children类自带方法做作业doHomework(),做完作业后孩子应该及时电话通知老爸作业做完了!,因此doHomework中会调用Parent类的oncall方法告知父亲,作业已经完成。整个流程中oncall就是回调函数,是Father类定义的,被Children中调用并返回结果给Father类。

举例二(观察者模式):注册多个对某个事件监听的对象,这些对象由类CallListener实例化获取(该类实现一个事件发生的接口Event)。再定义类Notifier,其中维持一个监听对象的数组,用于一旦事件发生立即通知各个监听对象,具体处理问题逻辑全在监听类所定义的方法中,与Notifier无关,处理过程的方法是监听类中定义的,即Notifier回调CallListener中的方法,该方法就是叫做回调方法。

例二代码:

//接口,包含回调函数声明
public interface Event{
    public void processEvent();
}
//实现接口的回调方法
public class CallListener implements Event{
    private String name;
    public CallListener(String name) {
    // 新建一个事件通知者对象,并把自己传递给它
        this.name= name;
    }
    // 实现事件发生时,实际处理事件的方法
    @override
    public void processEvent() {
    // 监听到事件发生了,进行处理
    }
}
//传入包含回调函数的对象
class Notifier{
    private List callListenerList=new ArrayList();
    public void regist(CallListener callListener){
        callListenerList.add(callListener);\
    }
    public void doWork(){
            for(CallListener callListener: callListenerList) {
            //触发回调函数
            callListener.processEvent("sample event");
        }
    }
}
测试代码:
public class Test {
    public static void main(String[] args) {
       Notifier notifier = new Notifier ();
       CallListener a = new CallListener("Listener A");
       CallListener b = new CallListener("Listener B");
       // 给通知者注册监听者,并直接启动通知
       notifier.regist(a);
       notifier.regist(b);
      // 此处回调监听Listener的processEvent处理事件
       notifier.doWork();       
    }
}

相关文章

  • Java 回调函数理解

    回调的意义在于,通过在其他对象中调用自身类中定义的函数,达到一定的目的(常见于事件注册,监听以及线程Runnabl...

  • JavaScript - 回调函数

    这里我想跟你聊聊我理解的回调函数(callback)。 回调函数,我觉得可以理解成作为参数传递的函数对象。因为在 ...

  • 理解回调函数

    最近经常看到“回调函数”这个概念,但不是很理解。为了弄明白回调函数,提出了以下三个问题:1.什么是回调函数 回调函...

  • JS 回调函数(callback)和递归函数(recursive

    有很多人不理解回调函数和递归函数,我们在这里研究一下。(本文仅适合新人) 什么是回调函数,什么是递归函数 回调函数...

  • Java 回调函数

    待续。。

  • java回调函数

    在js中,因为js是单线程操作,所以经常需要使用回调来完成异步操作或类似如下这样,将一个函数作用到数组的每个元素上...

  • java回调函数

    利用接口来实现回调,即在调用回调函数的类中实现接口,并实现接口中的方法即回调的方法,被调用类中存在接口的熟悉,并将...

  • 【翻译】Javascript 之回调

    原文链接 什么是回调函数 简单来说,回调函数就是:只有等另一个函数执行完了才可以执行的函数。 复杂点说,在Java...

  • java接口回调机制

    转载的正文 地址--理解java接口回调机制

  • JavaScript函数_08回调函数

    回调函数 回调函数(回调),当我们把某个函数作为参数传递给另一个函数的时候,这个函数就是回调函数 回调函数的基本写...

网友评论

      本文标题:Java 回调函数理解

      本文链接:https://www.haomeiwen.com/subject/xzunmftx.html