Java 中回调机制是什么原理?

作者:RednaxelaFX链接:https://www.zhihu.com/question/25504849/answer/130346710来源:知乎著作权归作者所有,转载请联系作者获得授权。“回调”(callback)这个概念本身跟Java没啥关系,是通用的。这个概念就是说:我写了这个答案,并且说我有空的时候再来更新(声明接受回调的事件)。下面评论区就有很多同学跑来说“如果有更新请告知”(注册回调)。然后我更新了回答,并且在评论区吼了声“我更新了”(事件发生了,调用回调)。然后之前“注册回调”的同学们就会收到通知说有更新了。很多学习Java的同学喜欢说设计模式。嗯。那宽泛地说,其实什么strategy**template**observer**visitor**模式全部都是回调的不同应用。简单来说就是本来可以写死在一起的代码给拆开来,把让其中一坨保持原有的流程,并在流程中挖出一些空,让另一坨代码作为参数传进来在流程中合适的地方被调用。这个“合适的地方”可以是同步的也可以是异步的。例如说java.util.Collections.sort(List, Comparator),这个sort()方法就定义了一个流程实现排序,而具体的顺序则由传入的Comparator参数来确定——这就是一个同步回调。又例如说GUI编程中,一个按钮被点击之后要做点事情,大家可以注册个ActionListener上去监听点击事件,在点击时被调用,这就是一个异步回调。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容