策略模式(Strategy Pattern)
定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户
设计原则1:找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起
设计原则2:针对接口(超类)编程,而不是针对实现编程
设计原则3:多用组合,少用继承
问题:一个模拟鸭子游戏SimUDuck,游戏中会出现各种鸭子,一边游泳戏水,一边呱呱叫。现在想添加飞行和显示名字的方法。但是鸭子有很多种,比如说玩具鸭子不能飞,它吱吱叫,甚至还存在模型鸭子,它的飞行行为具有火箭动力。原始的设计可能是这样的:
当有一些鸭子都是”吱吱叫&#