策略模式适用场景
策略模式的使用场景
1、许多相关的类仅仅是行为行为差异
2、运行时选取不同的算法变体
3、通过条件语句在多个分支中选取其一(if(){}else{}.....)
策略模式缺点
1、客户代码需要了解每个策略实现的细节
2、增加了对象的数目
策略模式的有点
1、使用了组合,使架构更加灵活
2、富有弹性,可以较好的应对变化(开一闭原则)
3、更好的代码复用性(相对于继承)
4、消除大量的条件语句
1、将不变的行为分离出来抽象为一个接口,将具体的行为交由实现去完成
2、面向接口,而不是面向实现编程
3、多用组合,少用继承
在长期的开发当中如何稳定框架的不变,这就需要找到应用中需要变化的部分,把他们独立出来,不要和那些不需要变化的代码混在一起
策略模式中的设计原则:
1、找到应用中需要变化的部分,把他们独立出来,不要和那些不需要变化的代码混在一起。
2、面向接口编程,而不是面向实现编程。
3、多用组合,少用继承
缺点:
优点: