java回调函数

简介: java回调函数

1.背景

举个例子有个程序员和一个项目经理,XX项目经理向程序员安排任务让程序员去完成,程序员获得任务并记下是XX项目经理安排的任务,程序员将任务完成后,获取通知XX项目经理的方式,发送一条信息通知项目经理任务已经完成。

2.实现

新建一个项目经理类:

public class ProjectManager {
    private String name;
    public ProjectManager(String name)
    {
         this.name =name;
    }
    public String getName()
    {
        return this.name;
    }
    /**
     * 通知方法
     * @param msg
     */
    public void noticeMe(String msg)
    {
        System.err.println(msg);
    }
    /**
     * 安排任务
     * @param task
     */
    public void arrange(String task)
    {
        //安排程序员干活
        new Programmer().receiveTask(task, this);
    }
    public void doOtherWork()
    {
        System.err.println("项目经理干其他事情...");
    }
}

新建一个程序员类:

import java.util.concurrent.TimeUnit;
public class Programmer {
    //记下是XX项目经理,而不是其他项目经理
    ProjectManager manager;
    /**程序员接受任务*/
    public void receiveTask(String task,ProjectManager manager)
    {
        this.manager = manager;
        try {
            //程序员开始执行任务
            this.excuteTask(task);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
    /**执行任务*/
    private void excuteTask(String task) throws InterruptedException
    {
        System.err.println("执行项目经理:"+manager.getName()+"安排的任务-->"+task);
        //任务执行中
        TimeUnit.SECONDS.sleep(1);
        //任务完成
        this.finished(task);
    }
    /**任务完成*/
    public void finished(String task)
    {
        //获取通知项目经理的方法,并发出通知
        //进行函数回调,这里还不算真正的回调
        manager.noticeMe(manager.getName()+"你好,你安排的任务"+task+"已经完成!");
    }
}

 

测试

public class CallbackTest {
    /**
     * @param args
     */
    public static void main(String[] args) {
        ProjectManager prjMgr = new ProjectManager("王响");
        prjMgr.arrange("今晚完成数据库设计...");
        prjMgr.doOtherWork();
    }
}

参考:

https://www.cnblogs.com/cxchanpin/p/6791696.html


相关文章
|
JavaScript 前端开发 Java
Java Script中的回调函数,可以用来做什么
Java Script中的回调函数,可以用来做什么
217 0
|
Java
什么是java回调函数
什么是java回调函数
658 1
什么是java回调函数
java_回调函数Callback
分为了三种回调函数,从简单到难,也挺好理解
277 0
|
JavaScript 前端开发 Java
回调函数 PHP 与 Java
回调函数 PHP 与 Java
180 0
JAVA回调函数简单讲解 CallBack
JAVA回调函数简单讲解 CallBack
609 0
JAVA回调函数简单讲解 CallBack
|
Java 设计模式
Java匿名内部类与回调函数
    之所以将匿名内部类和回调函数两个知识点一起写,是因为最近学习zookeeper的时候正好遇到这么一个例子。详细内容请参考:https://www.w3cschool.cn/zookeeper/zookeeper_api.html 以下是与ZooKeeper集合连接的完整代码。
6357 0
|
Java 程序员
Java回调函数的理解
所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。例如Win32下的窗口过程函数就是一个典型的回调函数。一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供。
1358 0
|
Java 程序员 测试技术
回调函数透彻理解Java
回调函数,第一次见是在Java编程思想中,以及后来的观察者模式也应用了回调函数的思想。但是一直都没有重视,终于在一次面试的时候吃亏了,越来越理解为什么很多人说Java编程思想这本书要一遍遍的看,吃透!         首先在网络上搜索很多文章介绍什么是回调函数,看的云里雾里的。
1070 0
|
Java 程序员
转Java 回调函数的理解
所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。例如Win32下的窗口过程函数就是一个典型的回调函数。一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供。
920 0