关于回调的简单理解(java)

  夫回调者,回了个调也。
  当年基友谈到回调,一言蔽之:when you call me ,i will call you.慨为经典。
  好吧其实好像也在别的地方听过,不过才疏学浅见识浅薄,记不源头了。
  要想简单掌握一个游戏,第一个需要知道的是什么?游戏规则。
  根据我的理解,简单回调满足的规则应该是:若A调B,结果需在A中处理。也就是说,调用者最后需要处理的结果,应该是在调用者身上处理的。
  小例子
  梗概:爷爷让孙子去打个酱油,孙子很忙,要把事做完了才了去打酱油,那爷爷已经困了要睡觉,等不了(异步概念),就让孙子打好了酱油叫他起床。
  
  先把事件写好:
public interface Call {
//打电话叫人
void sendMessage(Object obj);
}

接下来是爷爷(调用人)部分:
public class Oujisang implements Call {
//爷爷要处理的事
@Override
public void sendMessage(Object obj) {
     System.out.println("起床了");
     //结果
     System.out.println(this.getClass().getName()+"获得物品:酱油+1");//这个getname就是拿来突出谁才是问题的发起者
}

public static void main(String[] args) {
Oujisang ouj = new Oujisang();
boy nj = new boy(ouj);
//起因
nj.call("打瓶酱油,打完了叫我起床");
}
}
  
最后是孙子部分
public class boy {
private Call call;

//注意,是谁打的电话,叫做什么事,这点要记清楚
public boy(Call call) {
this.call = call;
}

public void call(final String str) {
//经过
System.out.println("收到录音:"+str);
System.out.println("现在忙,骚等");
new Thread(new Runnable() {
@Override
public void run() {
try {
//就忙了3s
Thread.sleep(3000);
System.out.println("忙完了");
System.out.println("酱油已就绪");
call.sendMessage(str);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}
}

  
  结束。

输出:
收到录音:打瓶酱油,打完了叫我起床
现在忙,骚等
忙完了
酱油已就绪
起床了
Oujisang获得物品:酱油+1

  注意起因经过和结果分别在哪里实现,解铃还须系铃人,就是回调规则。
  理解就这些,还请诸位英雄不吝赐教。

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值