回调函数的通俗解释是什么?

回调函数的主要功能和优势是什么呢?有什么替代品呢?如果不用回调,怎么实现呢?

回调函数的通俗解释
这涉及到两个程序模块间的交互,比如A程序需要提供一个功能给B程序用,比如这个功能是吃完饭后做一些事情(功能:吃完饭→做事),但是具体干什么我不知道,是去散步还是去喝酒,谁知道呢,那么怎么办呢?这时候就要用到回调函数,A程序可以把“做事”写成一个回调函数,回调函数指定一个函数指针或者接口。这样的话,A不具体去指定B去干什么,而是预留一个接口给B,这样B在自己的程序里写好“做事”的具体内容,然后调用A预留给B的那个回调函数,由B自己来决定到底做什么事情。
 

就是做完某些事情再做某些事情,有先后关系。没有什么替代品之说吧,无非就是不同的功能抽离出多个函数,每个函数只做一个功能。