• 回调方法


    什么是回调方法?

    回调只是个概念,就是把你的接口对应的实现类的一个实例当成一个参数传递给一个函数调用,那个函数处理过程中会调用你的这个接口中的方法。

    为什么称回调方法?

    因为正常调用方式是从高层调用低层而事件处理时回到高层来调用用户实现的方法。所以叫回调方法。

    为什么要用回调方法?

    有些库却要求应用先给它一个方法,好在合适的时候调用,以完成目标任务,这个被传入的,后又被调用的方法称回调方法。

    也有人说系统基本的框架给你实现具体的实现方式由不同的用户来完成时。用户间的需求不是固定的。

    回调方法的具体流程是什么?

    1.登记:set回调方法。A->B

    2.调用:call回调方法。B->A (触发事件)

    3.响应:  implements回调方法。A->B

    例:

    接口类

    public interface OnClickListener {
       
        public void OnClick(Button b);
     
    }

    系统类

    public class Button {
      OnClickListener listener;
     
      public void click() {
        listener.OnClick(this);
      }
      public void setOnClickListener(OnClickListener listener) {
        this.listener = listener;
      }
    }

    应用类(包含实现接口)

    public class Activity {
      public Activity() {
      }
      public static void main(String[] args) {
        Button button = new Button();
        button.setOnClickListener(new OnClickListener(){
           @Override
           public void OnClick(Button b) {
                     System.out.println("clicked");
           }   
        });
      }
    }

    1.登记:通过 button.setOnClickListener()方法首先去等级实现类。

    2.调用:通过Button类中click()调用(此方法在用户点击对应一个Button控件时会触发由系统向上调用最终调用Button类中的click()方法)

    3.响应:通过new OnClickListener()类中OnClick方法的实现告知系统做什么操作(System.out.println("clicked");)

    TIP:

    通过类之间的关系分析时。

    Activity中的OnClickListener是接口OnClickListener的是实现类。

    Button与接口OnClickListener是聚合的关系。

    Button的click方法依赖于Activity中的OnClickListener的实现类

    便于理解找到了一个不错的例子:

    我理解的接口回调就是,我这个类实现了一个接口里的方法doSomething,

    然后注册到你这里,然后我就去做别的事情去了,你在某个触发的时机回头来调用我doSomething的方法。

    好比,我给你打电话问某个难题,你电话里想不出来,于是说等想到了再回我电话。

  • 相关阅读:
    覆盖索引和联合索引
    docker是个啥?
    golang--解决邮件发送标题乱码问题
    爬虫-爬取美少女壁纸
    漫谈--ssh协议-中间人攻击
    golang--常用的字符串操作
    干支纪年
    JS实现纯前端将数据导出Excel两种方式亲测有效
    猴子吃香蕉-Java岗位面试题
    content:"26A1"特殊字符和图标记录
  • 原文地址:https://www.cnblogs.com/hongguang-kim/p/5724074.html
Copyright © 2020-2023  润新知