Java观察者模式的实现与对比
观察者模式作为一个耳熟能详的设计概念,早已被绝大多数的程序员所熟悉。虽然Observer
和Observable
从JDK1.0起就已经存在,但是到现在它们还是那样的难用,至少和Guava
的EventBus
比较起来。传统的发布订阅模式,主要是为了解决进程内事件的分发,从而去掉了显示的注册方式,从而是组件之间可以更好的解耦。现在的发布订阅随着消息中间件的流行,早已实现了跨进程通信。本文主要是对比JDK和Guava观察者模式的实现区别,如果是玩Android的朋友,还可以看看square/otto(专门为Android平台进行了优化的Guava EventBus库)、greenrobot/EventBus。
JDK观察者模式实现
1 | public class Student extends Observable { |
1 | public class Teacher implements Observer { |
1 | public class ObserverDemo { |
Guava观察者实现
1 | public class EventBusTest { |