java 接口回调

来源:互联网 发布:淘宝装修比较好的店铺 编辑:程序博客网 时间:2024/06/08 13:27

        先解释一下接口回调:百度百科上如是写:接口回调和上转型是设计模式的解耦核心,可以说几乎所有的模式都是建立在这两者的应用之上的。接口回调其本质与上转型是一样的,不同的是:接口回调是用接口句柄来得到并调用实现这个接口的子类的引用;而上转型则是用父类句柄来得到并调用继承此父类的子类的引用。

        当然如果你是个热爱写代码的程序员,这话你看起来并不费劲儿,而现实的情况是,大部分程序员都是觉得程序员钱多才干的,写的东西太抽象,太高深,基础不好的看着就费劲,还浪费时间。所以大致的流程图如下:

      所以就大概说下接口回调了,接口回调用的比较多,各种语言里面都很多,android开发的话用得更多。

       接口回调,首先要清楚接口是啥意思,接口说白了就是个高级点的类,当然你也可以理解成低级的类,穷的连个方法和属性都没有,都是抽象的,这样说也不为过;比较大的作用就是能够及时的收到通知,让两个类的对象之间的信息传递及时点,触发的对象收到通知后,能够及时的通知需要这个信息的其他相关处理的对象。

      然后就是一个例子:

class CallBackDemo{public static void main(String[] args) {System.out.println("Hello World!");Trigger trigger = new Trigger();trigger.testCallBack(new Follow(){@Overridepublic void callBack(){System.out.println("Follow call back");}});}}//触发类class Trigger{public void testCallBack(Follow f){System.out.println("Trigger call back");f.callBack();}}//回调类interface Follow{public abstract void callBack();}


        在初始化的时候传进去一个匿名内部类的对象,触发的事件就是trigger.testCallBack();这样的话就能及时的在CallBackDemo里面及时的处理这个信息,一般的接口回调都是这样写的,尤其是Listener之类的,当然也有好多直接传this的,说白了就是把当前这个对象传过去,上下运行结果:



        看结果,先触发trigger,后触发follow类,这样信息就及时传到了。
        当然有人问了,既然是为了传递信息,为啥我不直接用实体类的对象传过去?然后调下对应的方法就行了,因为实体类的对象的操作是固定的,比如想执行的并不是System.out.println("Follow call back");那样会有大量的实体对象操作,会让代码显得很臃肿,这样扩展性更强一点。

 
原创粉丝点击