1.结构图
功能:是把具体的算法从具体的业务中独立出来,把他们实现成独立的算法类,从而形成一系列的算法,并让这些算法可以互相 替换;
优缺点:
1.定义一系列算法
策略模式的功能就是定义一系列算法,实现让这些算法互相替换,所以会为这一系列算法定义一个接口;以约束算法要实现的功能;如果这一系列算法有相同的功能,可以把策略接口改成抽象类,把这些公共部分实现到抽象类中;
2.避免多个if else
3.更好的扩展性
缺点:
1.客户端必须了解每个策略的不同
2.增加了对象的数量;
3.只适合扁平化的算法结构;
何时选用策略模式: