观察者模式,又可以称之为发布-订阅模式,观察者,顾名思义,就是一个监听者,类似监听器的存在,
一旦被观察/监听的目标发生的情况,就会被监听者发现,这么想来目标发生情况到观察者知道情况,
其实是由目标将情况发送到观察者的。
当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,
则会自动通知它的依赖对象。观察者模式属于行为型模式。
观察者模式多用于实现订阅功能的场景,例如微博的订阅,当我们订阅了某个人的微博账号,
当这个人发布了新的消息,就会通知我们。
● Subject 被观察者
定义被观察者必须实现的职责,它必须能够动态地增加、取消观察者。它一般是抽象类或者是实现类,
仅仅完成作为被观察者必须实现的职责:管理观察者并通知观察者。
● Observer 观察者
观察者接收到消息后,即进行 update(更新方法)操作,对接收到的信息进行处理。
● ConcreteSubject 具体的被观察者
定义被观察者自己的业务逻辑,同时定义对哪些事件进行通知。
● ConcreteObserver 具体的观察者
每个观察在接收到消息后的处理反应是不同,各个观察者有自己的处理逻辑。