标签:
老方找华哥有事
华哥在忙,过一会处理老方的事情,处理完后主动给告诉老方
老方的到处理结果
都要实现的接口。
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期是什么课?"); } }
标签:
原文地址:http://my.oschina.net/u/2356176/blog/421057