Preface
原来一直不明白回调函数的作用,觉得就算是在单线程的环境下也只是用一种方式去改变程序的运行状态——从一个领域跳到另一个领域,做一个消息告知的功能,我觉得没什么很大作用。然后事情放到多线程环境下性质就截然不同了。我发现回调在多线程领域里面通知的功能还是很重要的,从控制角度来说是一种反馈机制。接下来我们就稍微来探讨一下这种机制的原理。
About Callback in Java
由于Java里并没有函数指针的概念,但是这并不影响使用回调这种思想。实际上,封装可以帮我们解决很多的问题。这也是模式里面经常强调的。将复杂的地方,存在变化的地方封装掉。只要稍微使用一点点聚合(Aggregation)就可以了。其实简单来说就是一个对象持有另一个对象的引用。更有效的做法是使用接口去规定一个回调的协议。我看网上很多写的有点复杂,所以自己按照自己的理解写了个比较存粹思路的代码。