java回调机制的通俗理解

来源:互联网 发布:淘宝同款排除王工具 编辑:程序博客网 时间:2024/05/17 00:11

今天看安卓书,遇到了java回调,不太明白,但是经过在网上一番搜索,也总算是理解了一点,在此把心得记下来,一个是为了日后万一忘记了可以再看看,另一个是如果帮到了你,我会很开心。

回调包括同步和异步两种。

先说异步:

我想吃德克士,于是叫了德克士的手枪腿两个,叫之前我把自己的住址(按照德克士要求的格式)发送给了德克士餐厅的前台,我放下电话开始打王者荣耀等待手枪腿的到来。

与此同时,德克士厨师收到我想吃手枪腿的订单后,开始制作手枪腿,然后照着地址送回给我。

public interface ToAddress {void 送到();}

public class 小明  implements ToAddress{private 厨师 德克士;public void 儿子想吃(final Food 手枪腿) {new Thread(new Runnable() {@Overridepublic void run() {德克士.做菜并送外卖(手枪腿, 小明.this);//此过程会花很长时间}}).start();//接下来可以干一些其他事,等外卖送来//比如 打王者荣耀}/** * 小明告诉厨师自己的地址 * 即实现了接口中如何送到自己家的方法 */@Overridepublic void 送到() {//坐1路车到中央百大下次//送到三楼401//小明 收}
public class 厨师 {public void 做菜并送外卖(Food food, ToAddress toAddress) {//做food...//做好后调用回调方法,送去食物toAddress.送到();}}
为什么说是异步:因为我下了订单后,没有等待他送来鸡腿再打王者荣耀,而是边打边等。


同步回调:

比如安卓或者swing中的任何监听,或者容器的监听方法。

比如我想到房顶去玩,可我没有房顶,我也上不去,可是有土豪提供给了我一个梯子还有房顶(方法:“土豪施舍”),但是需要在他规定的范围内活动(回调接口)。

我只要调用“”土豪施舍”这个方法,就可以获得梯子和房顶,再加上只要不出土豪限制的范围,随便玩什么都行(回调)。


以上便是我的理解,如果有错误,欢迎大家直接指出来,好共同进步!



1 0
原创粉丝点击