回调为何存在?
对象A要做一件事,但是有两种情况:
1.他不知道什么时候做
2.他只知道自己想要什么,他可以描述清楚自己想要的东西,但是他不会做,或者做不好,或者丢三落四,或者没权限做
对已第一种情况,有对象B知道A可以什么时候做,那么A就求助B ,在A可以做的时候 ,B能告诉A一声,然后A来做。。。
这就是监听器的原理,可以说监听器就是回调的一种应用 ,由于B不可能立即告诉A什么时候做,所以B得把A的联系方式存储起来,以便在将来的某个时间拿起联系方式,来通知A,这就是事件源上都有List<Listener> 或者 Listener[]的原因
对于第二种情况,有对象B会做,对象B做得很好,对象B可以帮助A做的不好的部分B来做,对象B有权限做
那么A就求助B,A可以把自己的需求描述清楚,告诉(传递)给B,B可以读懂A的要求,并且帮助A把事情做完,A等着B做事情,并且做完后把结果立马告诉A
回调有何应用?
监听器无处不在。。。。
操作系统提供的服务,无时不在。。。
容器执行action的validateXxx(), execute() , 执行servlet的doService(),init(),destory().....在处理用户请求时,无时不在
疑问?
回调和反射的区别及应用场景的区别?