策略模式
设计原则1:
找出应用中可能需要的变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起
设计原则2:
针对接口编程(超类), 而不是针对实现编程。
设计原则3:
多用组合,少用继承
用图表示吧,说多了也是废话。
观察者模式
设计原则4:为了交互对象之间的松耦合设计而努力
观察者模式中的 “推” 和 “拉”数据
推: 在notify()时,主题将自身和数据作为update()参数传给Observer。(所有观察者需要相同数据是比较好)
拉: notify()时,各个观察者根据自身需要 从自己的subject实例中获取对应相关数据。(Subject的数据要有隔天getter方法)
Java内置观察者模式
Observer接口和 Observable类
Observable类:
protect setChanged()方法
notifyOberservers()和 notifyObservers(Object arg)//推数据
Obsever接口:
update(Observevable o, Object arg)
使用之处:
各种UI组件,用来绑定响应事件时。