jtandygod 2012-10-13 09:14 采纳率: 100%
浏览 269
已采纳

JAVA:这个就是回调函数吗?我没看出来A调用B,B又回来调用A这种关系啊

public interface EventInfo { 接口
void showEventInfo();
}

public class SearchInfo implements EventInfo { 实现类
public SearchInfo() {
}

public void showEventInfo() {

    System.out.println("发生了查询事件");
}

}

public class PrintInfo implements EventInfo { 实现类
public PrintInfo() {
}

public void showEventInfo() {
    System.out.println("发生了打印事件");
}

}

public class EventNotifier {
private EventInfo ei;

public EventNotifier() {
}

public void setEventInfo(EventInfo ei) {
    this.ei = ei;
}

public void doWork() {

    ei.showEventInfo();

}

}

public class Test {

public static void main(String[] args) {
    PrintInfo pi = new PrintInfo();
    SearchInfo si = new SearchInfo();
    EventNotifier en = new EventNotifier();

    en.setEventInfo(pi);
    en.doWork();
    en.setEventInfo(si);
    en.doWork();
}

}

最后输出:
发生了打印事件
发生了查询事件

这是我在网上看到的例子 但是没看出怎么就回调了呢 ?

  • 写回答

2条回答 默认 最新

  • jinnianshilongnian 2012-10-13 16:16
    关注

    Java中所谓的回调 其实就是命令设计模式。 即命令设计模式 是 回调的 对象表示形式。

    如在javascript中

    function a() {
    return function() {//返回一个匿名函数
    alert(1);
    }
    }

    do(task) {
    task();//这就是回调

    }

    do(a());

    回调主要表达可变事情/任务的。

    如Java里边的AWT。 我们使用
    addJButton.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent e) {
    //回调
    }
    }

    可以参考个案例
    [url]http://jinnianshilongnian.iteye.com/blog/1685963[/url]
    spring dao提供了一致的DAO抽象
    Callback:定义可变行为,即不可预知行为(命令设计模式)
    Template:提供模板支持,简化开发Support:提供对Template的支持,提供一组简便方法,并提供获取Template的方法

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3