zoukankan      html  css  js  c++  java
  • Java 回调函数

    回调函数

    我对回调函数的理解

    假设:

    我的车在家里,现在已经坏了,我打电话给万能的维修工,我告诉他,嘿!哥来帮我修一下我的车吧!但是,维修工告诉我没有现在空闲,等有空闲了我可以上门服务!我告诉维修工如果你有空了那么你就直接来我家给我修理吧。

    换成程序而言:

         如果我想让一个类,调用我自己声明的方法,那么我需要一个一个回调接口来让我自己的类去实现它。通过这样来实现回调函数。回调函数就好像是C#中的委托。Java中并没有类似的机制。可以利用接口来实现回调。


    下面是一个小的Demo:

    下面是一个简单的类包含了一个我想要进行回调的方法,实现了IWorkAble这个回调接口。

     1 public class Caller implements IWorkAble{
     2     /*
     3      * 这个是我想要被回调的方法
     4      * */
     5     @Override
     6     public void work() {
     7         
     8         System.out.println("我是 call类的方法,我成功的让 call ,我成功的让 worker 调用!");
     9     }
    10 
    11 }

    下面是回调接口:

    1 public interface IWorkAble {
    2     //只是简单的定义了一个简单的方法
    3     void work();
    4 }

    下面是进行回调操作的类:

     1 public class Worker  {
     2     
     3     //回调接口对象,会通过里氏转换法则经Caller对性赋值给这个变量,通过这个变量来完成回回调操作
     4     IWorkAble workAble ;
     5     
     6     /*
     7      * 为对应的回调函数赋值
     8      * */
     9     public  void setWorkAble(IWorkAble iwa) {
    10         this.workAble=iwa;
    11     }
    12     
    13     public void work() {
    14         workAble.work();
    15     }
    16 }

    总结:

      回调函数的实现其实使用了一种简单的动态代理模式,当想要执行的时候进行执行即可。

  • 相关阅读:
    JavaScript 正则表达式上——基本语法
    温故知新 javascript 正则表达式
    Js把IE COM数组列表转换成数组
    Linux用户和用户组管理总结
    Linux FTP 服务器配置简单说明
    Linux中Samba详细安装
    js本地存储解决方案(localStorage与userData)
    通过了解渲染过程来提高页面性能
    使用Chrome DevTools的Timeline和Profiles提高Web应用程序的性能
    内存泄漏,循环引用
  • 原文地址:https://www.cnblogs.com/slyfox/p/6814727.html
Copyright © 2011-2022 走看看