一、定义
策略模式:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算
法的变化不会影响使用算法的客户。
二、实际应用
当前有一个抽象类 鸭子 (Duck ),其中有叫声(call),外观(dispaly),有n多个个他的实现类,现在要加一个飞行(fly)的方法,可是他的实现类中飞行方式主要分为能飞和不能飞两种,直接实现这个方法、或者实现飞行的抽象类,有大量重复代码。
可以将飞行和叫声的方法抽出来,分别创建接口Fly,Cell,然后分别实现他们,再将Fly和Cell作为 Duck 的变量。