Java中的观察者模式(Observer Pattern)是一种行为设计模式,它定义了对象之间的一对多依赖关系,这样一来,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。观察者模式使得你可以独立地改变目标和观察者,让两者之间的耦合度降低。
基本组成部分
观察者模式主要包含以下四个角色:
-
Subject(主题/被观察者):
-
定义了添加观察者、移除观察者和通知观察者的方法。
-
维护一个观察者集合。
-
当主题状态发生改变时,会通知所有注册的观察者。
-
-
Observer(观察者):
-
为那些在目标发生改变时需要得到通知的对象定义一个接口。
-
提供一个更新自己的方法,通常叫做
update()
。
-
-
ConcreteSubject(具体主题/具体被观察者):
-
实现Subject接口,维护自己的状态。
-
当状态发生改变时,调用
notifyObservers()
方法通知所有观察者。
-
-
ConcreteObserver(具体观察者):
-
实现Observer接口中的
update()
方法,以便在状态变化时得到通知并做出响应。
-
Java内置支持
在Java中,