通过View的OnClickListener监听机制的模型,来解析回调机制

来源:互联网 发布:唐韦星追王晨星知乎 编辑:程序博客网 时间:2024/06/05 21:04

下面是View的OnClickListener监听机制的基本模型:

public class A {    private CallBack callback;    //注册一个事件      public void register(CallBack callback){        this.callback = callback;    }}  
[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. public interface CallBack {  
  2.     public void onCall(View v);  

protected void onCreate(Bundle savedInstanceState) {        A a = new A();        a.register(new CallBack() {            @Override            public void onCall(View v) {                System.out.println("回调函数被调用");            }        });    }  

原理说明:当被调用类的应答方法由自己实现时,不便于复用。因为,每个调用者可能有不同的应答要求,最好的办法就是谁调用,那就由谁来实现具体的应答。所以,我们将被调用类(者)的应答独立抽象出来,形成了回调类CallBack,CallBack类只做一件事就是替被调用者做应答,具体就是onCall(View v)方法来做。

好比:演员张三有一张嘴,这张嘴说什么,不由张三控制,而是把嘴抽象出来,交由观众控制来实现(new CallBack())。观众可以是李四,可以是王五,每个人可以有不同的实现。但这种实现是一对一的关系,是一种特殊的观察者模式。观察者模式是一对多。