回调函数

来源:互联网 发布:股指期货模拟交易软件 编辑:程序博客网 时间:2024/05/11 15:56

前言:

        最近在一个地方用到回调函数,差不多一年之前接触过,也写了demo,但是碰见还是半懂不懂的,所以把这次写的demo写成博客,再看的时候也能快些。

首先都在说回调,但是我到现在也不是明确的理解哪里回调了,知道代码的逻辑流程,但是还是不理解为什么叫这么个名字,可能有人跟我一样,也可能我比较愚钝,不能一点就透。

     回调分为三个关系体:调用者,被调者,被调者的父类(看了好几种形式,都差不多,但是这种分的最清楚)。

调用者:

public class Title {    public InterfaceListViewAdapter mlistViewAdapterObject;//持有一个接口对象    public void setCallObject(InterfaceListViewAdapter ListViewAdapter) {//将外部的类对象传进来,以便于本类的对象调用传进来的类函数        this.mlistViewAdapterObject = ListViewAdapter;    }    public void setCall() {        this.mlistViewAdapterObject.addData();//真正要执行的函数    }}

被调者的父类(一般是一个接口)

public interface InterfaceListViewAdapter {    void addData();}

被调者

public class ListViewAdapter implements InterfaceListViewAdapter {    //实现这个接口    public void addData() {        Log.i("ListViewAdapter","添加数据成功");    }}
(因为是用AndroidStudio来编写的所以用了LOG)

执行

        Title mtitle = new Title();        //相当于把title和ListViewAdapter通过CallBack接口建立了联系        mtitle.setCallObject(new ListViewAdapter());        //调用了该方法,ListViewAdapter中的接口方法打印        mtitle.setCall();

结尾:

回调简单来说就是偷梁换柱,持有别的类的对象,然后在自己的函数下执行别的函数,在外面看起来跟被调用者没什么关系,但是实际执行的代码就是被调用者

的代码,表里不一的感觉。






原创粉丝点击