回调模式

来源:互联网 发布:java jdk 7 64位下载 编辑:程序博客网 时间:2024/06/06 15:00

回调模式



      程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法。目的达到。


总结:A类调用B类中的a方法



生活中的例子



      你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件。



UML 类图

1



创建回调接口


  • CallInterface.java
/** * 回调接口 * @author LingDu */public interface CallInterface {    public void printName();}


创建回调者



用于调用回调函数的类


  • Caller.java
/** * 回调者,用于调用回调函数的类 * @author LingDu */public class Caller {    private CallInterface callInterface;    public void setCall(CallInterface callInterface){        this.callInterface = callInterface;    }    public void call(){        System.out.println("start....");        callInterface.printName();        System.out.println("end....");    }}


回调测试


public static void main(String[] args) {        Caller caller = new Caller();           caller.setCall(new CallInterface() {            @Override            public void printName() {                System.out.println("Client : printName()");            }        });        caller.call();    }


2



应用场景


  • Thread就是回调者,Runnable就是一个回调接口。
new Thread(new Runnable(){        @Override        public void run() {             System.out.println("回调一个新线程!");  }}).start();