处理一对多或者触发器时用到的设计模式
- 一般思路(面向过程)
问题
定制不同的公告板显示内容时(第三方)需在dataChange中增加另外的入参
不能顺利的解耦合
扩展性不足
- 解决方式
数据类与公告类之间组成一对多的关系,将公告类注册到数据类当中,当数据类某项数据被改动时触发已经注册的公告类的处理方法。
原理
被依赖对象 Subject 接口方法 方法入参为依赖对象
- 登记注册
- 移除
- 通知
依赖对象 Observer 方法入参为需要登记的数据
- 接受输入
被依赖对象通知依赖对象变化
具体实现
被依赖对象A
属性
显示参数
依赖对象列表
方法
- 登记注册 将指定依赖对象放入依赖对象列表中
- 移除
- 通知 调用依赖对象列表的登记方法
- 触发器方法(当有数据作更改时调用通知方法)
依赖对象B
方法
1.接受输入 将输入参数放入到该对象的属性中
2.若干处理该参数的方法
由此可知
只要将依赖对象注册到被依赖对象的依赖对象列表中,当被依赖对象的属性被改变时,就能触发依赖对象的处理方法。