观察者模式
定义
中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。
类图
Subject
表示观察对象。定义了注册观察者和删除观察者的方法。此外,还声明了“获取现在状态”的方法。
ConcreteSubject
表示具体的被观察对象。当自身状态发生变化后,它会通知所有已经注册的Observer角色
Observer(观察者)
负责接收来自Subject的状态变化通知。为此,它声明了update方法
ConcreteObserver(具体的观察者)
表示具体的Observer。当他的update方法被调用后,会去获取要观察的对象的最新的状态。
示例
类图
DigitObserver
1 | public class DigitObserver implements Observer { |
GraphObserver
1 | public class GraphObserver implements Observer { |
NumberGenerator
1 | public abstract class NumberGenerator { |
Observer
1 | public interface Observer { |
RandomNumberGenerator
1 | public class RandomNumberGenerator extends NumberGenerator { |
Main
1 | public class Main { |