策略模式:Strategy Pattern、行为型模式
策略模式将定义的算法家族、分别封装起来,让它们之间可以互相替换,从而让算法的变化不会影响到使用算法的用户。
策略模式核心在于 面向对象的继承和多态机制
策略模式应用场景
1、针对同一类型问题,有多种处理方式,每一种都能独立解决问题
2、算法需要自由切换或者屏蔽算法规则等。
策略模式的优缺点
优点:
1、策略模式符合开闭原则
2、避免多重条件转移语句,如 if..else 、swith 等
3、使用策略模式可以提高算法的保密性和安全性。
缺点:
1、客户端必须知道所有策略,并自行进行策略选择
2、代码中会产生很多策略类,增加维护难度。
策略模式源码应用
1、Comparator类的 compare()
2、Spring中的 InstantiationStrategy接口