Head First 学习笔记
学习进行中,努力努力!最近一次更新03.21
1. 策略模式
定义算法族,将他们封装起来,可相互替换,让算法的变化独立于使用算法的客户
BUG:橡皮鸭会飞?
解决:利用覆盖(可能N多个子类都需要修改)
设计原则:找出应用中需要变化之处,把他们独立出来,不和不需要变化的代码混在一起
需要变化:fly(飞行方式),quack(叫声) 不需要变化:swim
设计原则:针对接口编程,不针对实现编程
「有一个」 可能比「是一个」更好:每一鸭子都有一个FlyBehavior且 有一个QuackBehavior,让鸭子将“飞 行和呱呱叫委托它们代为处理。
设计原则:多用组合,少用继承
代码:
想要个赞嘻