主题Subject / 观察者Observer
sub 和 obs 对象中存在意义相同的 对象/属性 , 当sub中的数据更新时,会触发obs中的数据也接着更新。
- 观察者模式执行流程:
- 观察者订阅某一主题,注册自身obs对象到特定主题类中的obs集合中;
- 主题类 通知(或触发)obs对象 更新的方法(notify())放入sub类对应的setter方法中;
- 当主题类对象属性(经setter)发生改变时,将触发notify()方法;
- notify()方法会遍历执行obs集合中的所有元素对象的update(Subject sub)方法 ,同步修改obs中的属性。
至此,达成观察者模式的目的。