回调方法callback

老方找华哥有事

华哥在忙,过一会处理老方的事情,处理完后主动给告诉老方

老方的到处理结果

都要实现的接口。

public interface CallBack {
       public void result(String result);
}

华哥

public class HuaGe implements CallBack {

	@Override
	public void result(String result) {
		// TODO Auto-generated method stub

	}
    /**
     * 相当于class B 里面的 c方法
     */
	public void message(CallBack callback, String msg) {
		// TODO Auto-generated method stub
		System.out.println("老方问的问题是:"+msg);
		/**
		 * 老方挂掉电话。。。忙自己的事情 去了
		 */
		busy();
		/**
		 * 华哥在忙自己的事情。。需要很长时间
		 */
		for(int i=0;i<10000;i++){

		}
		/**
		 * 华哥终于把事情干完了 看了下课表,明天是讲项目实战
		 */
		String result = "明天是讲项目实战";
		/**
		 * 拿起电话告诉老方,明天是讲项目实战课程
		 */
		callback.result(result);
	}
	private void busy() {
		System.out.println("老方开会中。。。。。");

	}
}

老方

public class LaoFang implements CallBack {
    private HuaGe huaGe ;
	public LaoFang(HuaGe huaGe) {
		this.huaGe = huaGe;
	}
    /**
     * 华哥通过这个方法,告诉老方,明天是项目实战课程
     * 这个方法就是传说中的回调方法。。。。也就是class A中的D方法
     */
	@Override
	public void result(String result) {
		// TODO Auto-generated method stub
        System.out.println("华哥的回答是:"+result);
	}
    /**
     * 老方通过这个方法去问泽华老师
     * msg : 明天黑马28期是什么课程
     */
	public void ask(final String msg) {
		new Thread(){
			public void run() {
				// 老方调用华哥里面的方法,然后注册回调

				huaGe.message(LaoFang.this,msg);
			};
		}.start();

	}

}

测试类

/**
 * ============================================================
 *
 * 版 权 : 黑马程序员教育集团 版权所有 (c) 2014
 *
 * 作 者 : 马伟奇
 *
 * 版 本 : 1.0
 *
 * 创建日期 : 2014-4-28 下午10:51:27
 *
 * 描 述 :
 *
 *          经典
 *          编码容易,经典不易,且学且珍惜
 * 修订历史 :
 *
 * ============================================================
 **/
public class Test {

	 /****
	  *   LaoFang : 黑马的CEO                                  class A
	  *   HuaGe   : android 部门的负责人                   class B
	  *
	  *   1 老方 :泽华,明天黑马28期是什么课?
	  *      华哥 :嗯嗯嗯嗯嗯。。。。 哎呀,忘记了。。。。
	  *   2 老方 :那你看看课表。。。。
	  *      华哥 :我现在手头比较忙。。一会儿,我忙完了,我在帮你看看。。。。
	  *      老方  : 好的。。。那我马上有事,需要开会,等你忙完了。在给我打电话吧。。。
	  *   3 老方 : 挂断电话,去开会,等华哥的电话
	  *                  不挂断电话,一直跟泽华保持通话,直到华哥忙完了,在跟我说话。。。
	  */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        HuaGe huaGe = new HuaGe();
        LaoFang laoFang = new LaoFang(huaGe);
        laoFang.ask("明天黑马28期是什么课?");
	}

}
时间: 2024-08-01 22:43:31

回调方法callback的相关文章

JAVA回调机制(CallBack)详解

序言 最近学习java,接触到了回调机制(CallBack).初识时感觉比较混乱,而且在网上搜索到的相关的讲解,要么一言带过,要么说的比较单纯的像是给CallBack做了一个定义.当然了,我在理解了回调之后,再去看网上的各种讲解,确实没什么问题.但是,对于初学的我来说,缺了一个循序渐进的过程.此处,将我对回调机制的个人理解,按照由浅到深的顺序描述一下,如有不妥之处,望不吝赐教! 开始之前,先想象一个场景:幼稚园的小朋友刚刚学习了10以内的加法. 第1章. 故事的缘起 幼师在黑板上写一个式子 “1

理解javascript中的回调函数(callback)

以下内容来源于:http://www.jb51.net/article/54641.htm 最近在看 express,满眼看去,到处是以函数作为参数的回调函数的使用.如果这个概念理解不了,nodejs.express 的代码就会看得一塌糊涂.比如: app.use(function(req, res, next) {    var err = new Error('Not Found');    err.status = 404;    next(err);}); app是对象,use是方法,方

winPcap_6_不用回调方法捕获数据包

用 pcap_next_ex() 函数代替 _5_ 中的 pcap_loop()函数: pcap_loop()函数是基于回调的原理来进行数据捕获,这是一种精妙的方法,并且在某些场合中,它是一种很好的选择. 然而,处理回调有时候并不实用 -- 它会增加程序的复杂度,特别是在拥有多线程的C++程序中. 可以通过直接调用pcap_next_ex() 函数来获得一个数据包 -- 只有当编程人员使用了 pcap_next_ex() 函数才能收到数据包. 这个函数的参数和捕获回调函数的参数是一样的 -- 它

C++中回调函数(CallBack)的使用

如果试图直接使用C++的成员函数作为回调函数将发生错误,甚至编译就不能通过. 其错误是普通的C++成员函数都隐含了一个传递函数作为参数,亦即“this”指针,C++通过传递this指针给其成员函数从而实现成员函数可以访问C++的数据成员.这也可以理解为什么C++类的多个实例可以共享成员函数却-有不同的数据成员.由于this指针的作用,使得将一个CALL-BACK型的成员函数作为回调函数安装时就会因为隐含的this指针使得函数参数个数不匹配,从而导致回调函数安装失败.要解决这一问题的关键就是不让t

android中 回调方法,怎么转变为阻塞执行的方法

项目中需要用到在wifi这一块,扫描附近wifi,然后一个个遍历所有wifi,并且尝试连接,所以就在这里需要每连接一个wifi进行阻塞,当连接失败的时候才进行尝试下一个连接,当连接成功时则break. 我们仍然可以在回调方法中加一个标识:如 int flag = 0; public void callback() { flag = 1; } //阻塞的方法中可以这么写 public void fun() {... while (true) { if (flag == 1) { break; }

JS~jwPlayer为js预留的回调方法大总结

对于一个成功的产品,它是对外封闭的,但又是对外开放的,这句话并不矛盾,让我来说一下,说它对外封闭是因为它本身的代码不允许你去修改,而说它开放,是因为它为我们定义了很多API,或者叫回调方法,对于jwplayer来说,它为我们提供了很多js的回调方法(事件),它被包含在events属性上的. 应用场合 播放时记录当前视频的时间,播放完成时写入完成的时间,像这些功能,我们都可以通过事件回调的方法解决,即为events属性赋相应的值. 注意 测试时,jwplayer需要在正式网站上测试,而本地打开时,

【转载】JAVA回调机制(CallBack)详解

转载自http://www.cnblogs.com/heshuchao/p/5376298.html 序言 最近学习java,接触到了回调机制(CallBack).初识时感觉比较混乱,而且在网上搜索到的相关的讲解,要么一言带过,要么说的比较单纯的像是给CallBack做了一个定义.当然了,我在理解了回调之后,再去看网上的各种讲解,确实没什么问题.但是,对于初学的我来说,缺了一个循序渐进的过程.此处,将我对回调机制的个人理解,按照由浅到深的顺序描述一下,如有不妥之处,望不吝赐教! 开始之前,先想象

C++回调函数(callback)的使用

什么是回调函数(callback)    模块A有一个函数foo,他向模块B传递foo的地址,然后在B里面发生某种事件(event)时,通过从A里面传递过来的foo的地址调用foo,通知A发生了什么事情,让A作出相应反应. 那么我们就把foo称为回调函数.   例子:      回调函数是个很有用,也很重要的概念.当发生某种事件时,系统或其他函数将会自动调用您定义的一段函数.回调函数在windows编程使用的场合很多, 比如Hook回调函数:MouseProc,GetMsgProc连同EnumW

JavaScript:回调模式(Callback Pattern)

函数就是对象,所以他们可以作为一个参数传递给其它函数: 当你将introduceBugs()作为一个参数传递给writeCode(),然后在某个时间点,writeCode()有可能执行(调用)introduceBugs(): 这种情况下,introduceBugs()被称为回调函数(callback function)或简称为回调(callback:): [javascript] view plaincopyprint? function writeCode(callback) { // do