观察者模式的逻辑结构如下:
由图可知,Subject(被观察者)是一个接口,所有被观察者的实例对象都必须继承这个接口,
Observer(观察者)也是一个接口,当被观察者更新时,被观察者就会通知与他绑定的观察者数据更新,然后观察者就做出相应的响应,下面是代码实现:
首先是被观察者的接口:
接下来是观察者的接口:
这里只有一个响应方法接口,因为,观察者与被观察者的关系是单方向绑定,观察者一般不对被观察者做出影响,而是自己作出响应。
接下来是观察者和被观察者的实例:
这里观察者和被观察者只做了简单的绑定和更新。
接下来看event类:
这个类持有一个listerner的接口引用,当事件触发是采用回调的形式,让被观察者通知观察者更新数据。EventListerner的接口只有一个onEvent方法,就不贴出来了。
最后我们看看在main里面怎么操作:
这里是注册了一个按钮,但点击事件触发时,事件启动。
看到这里应该差不多懂了观察者模式是怎么回事了。由观察者去响应被观察者的变化,通过事件的回调来处理事件,这就是观察者模式。
第一次写博客,如果有什么不正确的地方,麻烦指出来下,谢谢!