程序开发中的设计模式——策略模式

什么是策略模式

策略模式是只对一系列的算法定义,并将每一个算法封装起来,而且使他们还可以相互替换。策略模式让算法的变化独立于使用算法的客户。

策略模式的设计原则

策略模式的设计原则是把一个类中经常改变或者是将来可能改变的部分提取出来,作为一个接口,然后在类中包含这个对象的实例,这样类的实例在运行时就可以随意调用实现了这个接口的类。

策略模式中的三个对象

  • 环境对象:该类中实现了对抽象策略中定义的接口或者抽象类的引用。
  • 抽象策略类:它可以有接口或抽象类来实现。
  • 具体策略对象:他封装了实现不同功能的算法。

策略模式的优缺点

优点

  • 算法可以自由切换,通过实现抽象策略,通过角色对其封装,保证对外提供“可自由切换”的策略
  • 避免使用多重条件判断,如果有多重策略,那么每个策略只需要实现自己的方法
  • 扩展性好,可以在现有的系统中任意的加入新的策略 (需要符合 OCP 原则)

缺点

  • 策略类数量增多,每个策略都是一个类,复用的可能性很小,类的数量会增多
  • 所有的策略都要对外暴露,上层模块必须知道有哪些策略才能知道采用哪种对应的策略,(可以通过工厂模式、代理模式、享元模式修正)

猜你喜欢

转载自blog.csdn.net/AnTianyang/article/details/80046630
今日推荐