在 Java 中,观察者模式是一个很重要的设计模式,在这篇文章中,我们来简单了解一下如何利用 Java 语言的特性来实现
一个简单的观察者模式。
Java 中的 Obserable 与 Observer
在 Java SE 中,有一个 Observer 接口和一个 Observer 类。在 api 文档中,描述如下:
Observer
一个类实现乐这个接口之后,被观察的对象如果有改变,那么这个类就可以接收到通知。实现这个接口必须要实现update
方法。Obserable
这个类代表一个可观察的对象,或者 model 层的一个实例,可以被认为是想被观察的对象的一个子类。一个可观察的对象可以有多个观察者。
实现简单的观察者模式
首先需要定义一个可观察的对象,这个对象中有一个 data 变量,这个变量在被改变的时候会通知到观察者:
1 | public class ObservableObject extends Observable{ |
定义观察者,观察者在接收到被观察者的改变之后,会将改变的值打印出来:
1 | public class ObserverObject implements Observer { |
测试:
1 | public class Main { |
运行结果为:
1 | 被观察者的数据被修改为:1 |
需要注意的是只打印了两个结果,是因为在第三次改变之前将观察者移除了,这样造成的结果是被观察者的改变将不能通知到被移除的观察者。