定义算法组,分别封装起来,让它们之间可以相互替换。让算法的变化独立于使用算法的客户
优点: 1、算法可以自由切换。 2、避免使用多重条件判断。 3、扩展性良好。
缺点: 1、策略类会增多。 2、所有策略类都需要对外暴露。
实现一群鸭子类,有不同的飞行行为、外观、叫声。。。
设计1:
对Duck进行修改,影响很大
设计2:
重复代码多,可修改性差。比如要修改飞行代码,要全部实现类都改。
定义接口和具体实现行为
Duck抽象类
原文:https://www.cnblogs.com/cpaulyz/p/13173291.html