关于回调

关于回调

几种场景

  1. A函数在执行过程中调用了B函数,而B函数再流程中需要外部A的配合(扩展性),调用B时传入回调接口实现(匿名或者new)。

  2. A函数在执行过程中调用了B函数,而B函数在执行完成后,需要对结果进行处理,一种是返回A后由A处理,第二种是传入处理函数,直接进行调用(偏向于较为简单的处理,且与A的主功能相关性较差,比如打印日志。)。

  3. 调用异步函数,异步状态下,可能无法让B函数返回后处理,则需直接把结果处理方法传入,进行处理。

应用1(阻塞)

A ----> B ----- >C(过程处理)-----> B----------->A (过程或者结果,可通过参数传入)
A ----> B ------>C -----------> A

这个C:

  1. C 与B的没有从属关系,弱关系。
  2. 可能是个扩展点,有多种实现,结果扩展,过程扩展。

应用二(异步回调)

  • A --- > B(异步)
    而A需要对B的结果作出处理,则通过回调把处理函数C传入异步函数B
  • 涉及到异步一般会涉及到回调(过程回调或是结果回调)。

模式

  • 一旦发现 A 调用B,而B在过程中需要调用外部功能C(在A中可初始化以及实现),则C就可以通过回调来达成引入。
  • 异步调用要想到回调。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容