策略模式
一、什么是策略模式?
策略模式是:定义一组算法,将每个算法都封装起来,并且可以使他们之间可以互换。
1、Context是封装了具体的策略。
2、Strategy是策略的统一接口,提供共同的抽象方法。
3、ConcreteStrategy是具体的策略,并对接口中的抽象方法实现。
二、具体案例
1.定义统一的策略接口
锦囊妙计接口, 提供一个抽象的妙计方法。
2.定义第一个具体的妙计接口
3.定义第二个具体的妙计接口
4.定义第三个具体的妙计接口
5.定义最重要的锦囊Context类。
Context类用来装载这几个具体的妙计实现类,并且对外统一提供服务,屏蔽上层对每个策略或算法的直接访问。
总结
使用策略模式可以实现算法的自由切换,避免使用多重条件判断,扩展性良好。
但是,策略模式也存在一些缺点,策略类会比较多;所有的策略类都需要对外暴露,上层才能决定使用哪一个具体策略。