认识观察者模式:
1、目标与观察者之间的关系
一对一、一对多、多对一(观察者需要定义多个update方法用于区分)
2、单项依赖
观察者依赖目标,观察者一直在等待目标的通知
3、命名建议
观察者模式又被称为发布订阅模式
①目标接口的定义,名称加Subject后缀
②观察者接口的定义,名称加Observer后缀
③观察者接口的更新方法,名称为update
4、触发通知的时机
先修改状态再通知,否则会导致状态不一致
5、观察者模式的调用顺序示意图
①准备阶段
创建目标对象-》创建观察者对象-》向目标对象注册观察者对象
②运行阶段
改变目标对象的状态-》通知所有注册的观察者对象进行相应的处理-》回调目标对象,获取相应的数据
6、通知的顺序
多个观察者之间是没有先后顺序的
(1)事物与观察者的关系,可以是一对多,也可能是多对多
(2)观察者依赖于目标事物,反向则不行
(3)事物类的命名应以Subject结尾,观察者对象则以Oberserver结尾
(4)为了让观察者与事物状态保持一致,应当在事物状态更新后再通知观察者
(5)事物通知多个观察者的顺序是平行的,没有先后之分
(6)执行流程:创建事物 -> 注册观察者 -> 更新事物 -> 通知观察者
创建、注册阶段
认识观察者模式:
1、目标与观察者之间的关系
一对一、一对多、多对一(观察者需要定义多个update方法用于区分)
2、单项依赖
观察者依赖目标,观察者一直在等待目标的通知
3、命名建议
观察者模式又被称为发布订阅模式
①目标接口的定义,名称加Subject后缀
②观察者接口的定义,名称加Observer后缀
③观察者接口的更新方法,名称为update
4、触发通知的时机
先修改状态再通知,否则会导致状态不一致
5、观察者模式的调用顺序示意图
①准备阶段
创建目标对象-》创建观察者对象-》向目标对象注册观察者对象
②运行阶段
改变目标对象的状态-》通知所有注册的观察者对象进行相应的处理-》回调目标对象,获取相应的数据
6、通知的顺序
多个观察者之间是没有先后顺序的