一、定义:策略模式定义了一系列算法并将每一个算法封装起来,使它们可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
二、使用场景:①针对同一问题的多钟处理方式
②需要安全的封装多钟同一类型的操作
③出现同一抽象类有多个子类,而又需要使用if-else,switch-case选择具体子类
三、优点:①结构清晰明了,使用简单直观
②耦合度相对较低,扩展方便
③操作封装更为彻底,数据更加安全
四、缺点:随着策略的增加,子类也会变得繁多
五、总结:策略模式主要来分离算法,在相同的行为抽象下有不同的具体实现策略。这个模式展示了开闭原则,也就是定义抽象,注入不同的实现,从而达到很好的可扩展性