Head First 学习笔记

学习进行中,努力努力!最近一次更新03.21

1. 策略模式

定义算法族,将他们封装起来,可相互替换,让算法的变化独立于使用算法的客户

Head First 学习笔记

 

BUG:橡皮鸭会飞?

解决:利用覆盖(可能N多个子类都需要修改)

 

设计原则:找出应用中需要变化之处,把他们独立出来,不和不需要变化的代码混在一起

 

需要变化:fly(飞行方式),quack(叫声)           不需要变化:swim

 

Head First 学习笔记

设计原则:针对接口编程,不针对实现编程

Head First 学习笔记

Head First 学习笔记

「有一个」 可能比「是一个」更好:每一鸭子都有一个FlyBehavior且 有一个QuackBehavior,让鸭子将“飞 行和呱呱叫委托它们代为处理。

设计原则:多用组合,少用继承

代码:

Head First 学习笔记

Head First 学习笔记

想要个赞嘻