前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >深入理解java的回调机制

深入理解java的回调机制

原创
作者头像
一点点
发布2025-01-11 18:03:40
发布2025-01-11 18:03:40
1090
举报

什么是回调?

回调(Callback)就是在调用一个A方法的时候,指定传入另外一个方法B,在制定的位置或者是特殊的事件执行后自动的调用方法B。也就是说,回调就是在某些事件触发后,需要给予我们通知用来执行一些指定的工作。

以生活中的例子来说:我们去银行里面取钱,我们找到柜员告知需要取钱,柜员收到卡片后进行查询余额,检查数据后,反回来对我们说,请输入密码。我们输完密码后,柜员才完成最终的取钱流程.

在上面的例子中。请输入密码这一个操作,实际上就是回调。我们触发了取钱的事件,这个事件在执行期间回调我们执行输入密码操作后。继续执行取钱事件。

回调的机制使得程序更加的灵活。能够在一个程序中,不同的情况下执行不同的机制。

例如上面的取钱例子。不同的人来取钱就可以输入不同的密码。

回调的用途?

回调的用途核心就是对于需要额外执行一些操作的事件进行扩展。

实际上就是对于一个事件上环节上进行额外的补充。

简单的回调案例

我们写一个简单的案例:张三正在吃饭,张三女朋友给他打电话过来,问他在干嘛,他说在吃饭。然后他女朋友说,那你吃完饭给我回电话过来。

我们定义一个回调的接口。

代码语言:txt
复制
public interface Callback{
     public void doEvent();
}

接下来创建一个女朋友类,有一个事件给男朋友打电话

代码语言:txt
复制
public class Girlfriend implements Callback{
    public void boyfriend(){
        System.out.println("女朋友打电话给张三...");
        System.out.println("张三在吃饭一会回过来...");
    }
    
    public void doEvent(){
      System.out.println("男朋友回电话啦~~");
    }
}

接下来我们创建一个张三类,张三因为有女朋友,所以给他注册一个女朋友

代码语言:txt
复制
public class Zhangsan{
    //张三的女朋友
    public Callback girlfriend;
     public Zhangsan(CallBack girlfriend)
    {
        this.girlfriend=girlfriend;
        //开始吃饭
        this.eat();
        //女朋友打电话来了
        girlfriend.boyfriend();
    }
    public void eat()
    {
        System.out.println("张三吃饭中....");
    }
    public void end(){
         System.out.println("吃完饭了....");
         girlfriend.doEvent();
    }
}

最后我们来测试一下这个流程

代码语言:txt
复制
public class TestMain
{
    public static void main(String[] args)
    {
        //创建张三 并传入girlfriend
        Zhangsan zhangsan=new Zhangsan(new Girlfriend());
        //启动控制器对象运行
        zhangsan.end();
    }
}

打印的结果为:

张三吃饭中....

女朋友打电话给张三...

张三在吃饭一会回过来...

吃完饭了....

男朋友回电话啦~~

整体的回调机制就是,女朋友触发了一个事件(打电话给张三),张三正在做着某事,等做完了事情后及时回调给女朋友。

回调的优势

回调的机制可以让程序更加的灵活,更加的有扩展性。根据业务的不同情况来调用不同的程序方案。从而将更复杂的逻辑进行简单分化。

回调也可以在不同的节点进行异步的任务执行,例如在订单下单完成节点,直接触发库存减少回调事件。

总结

文章 简单的介绍了回调的原理机制,上方在张三的初始化入参一个回调事件。可以完好的理解为在不同的场景下对应不同的应对逻辑。比如张三入参是女朋友小花,李四入参则可以是女朋友小美。

整个回调的机制让程序更加可扩展。更加的灵活。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是回调?
  • 回调的用途?
  • 简单的回调案例
  • 回调的优势
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档