策略模式:
策略模式封装不同算法家族,让他们之间相互替换,保证算法的变化独立于使用算法的客户。从鸭子实例可以看出策略是如何封装变化,如何使用组合,如何针对接口编程的。
第一版:
每个鸭子子类都继承超类,结果是所有鸭子都会游泳、都会呱呱叫。如果有的鸭子会飞呢,只能在超类中添加fly()行为,所以说使用继承达到复用目的并不完美了。如果来一个橡皮鸭呢?只会只会吱吱叫;再或者还有一个木头鸭不会叫也不会飞?这是有人想到用橡皮鸭的吱吱叫覆盖超类中的呱呱叫,还有人把fly()和<
策略模式:
策略模式封装不同算法家族,让他们之间相互替换,保证算法的变化独立于使用算法的客户。从鸭子实例可以看出策略是如何封装变化,如何使用组合,如何针对接口编程的。
第一版:
每个鸭子子类都继承超类,结果是所有鸭子都会游泳、都会呱呱叫。如果有的鸭子会飞呢,只能在超类中添加fly()行为,所以说使用继承达到复用目的并不完美了。如果来一个橡皮鸭呢?只会只会吱吱叫;再或者还有一个木头鸭不会叫也不会飞?这是有人想到用橡皮鸭的吱吱叫覆盖超类中的呱呱叫,还有人把fly()和<