# README
策略模式
定义
定义了算法族,分别封装起来,让他们之间可以相互替换,这种模式让算法的变化独立于使用算法的客户
启示
- 学会分开变化和不会变化的部分,找出应用中可能需要变化之处,把他们独立处理,不要和那些不需要变化的代码混在一起
- 多用组合 少用继承
处理方式思路
- 我们知道Duck中的fly() 和 quack() 会随着鸭子的不同而改变,为了把这两个行为从Duck类中分开,我们将把他们从Duck类中取出来,建立一组新类来代表每个行为
- 我们应该在鸭子类中包含 设定行为的方法,这样就会在 运行时 动态 的 改变 不同鸭子 的飞行行为
- 从现在开始,鸭子的行为将被放在分开的类中,此类专门提供某行为接口的实现,这样鸭子类就不需要知道行为的实现细节
其他
- 良好的 Object–Oriented 设计需要满足 可复用,可扩充,可维护 三个特性
- 我们常把系统中会变化的部分抽出来封装
- 封装变化 多用组合少用继承 针对接口编程不针对实现编程