编程设计模式—策略模式

时间:2022-10-23 19:35:13

  大家好!我是小唐,今天给大家分享一下编程中的一种设计模式——策略模式。

  策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合。

  策略模式的Strategy类层次为Context定义了一系列的可供重用的算法或行为。继承有助于析取出这些算法中的公共功能。

  策略模式的优点是简化了单元测试,因为每个算法都有自己的类,可以通过自己的接口单独测试。

  当不同的行为堆砌在一个类中时,就很难避免使用条件语句来选择合适的行为,将这些行为封装在一个个独立的Strategy类中,可以在使用这些行为的类中消除条件语句。

  代码如下:

Strategy类,定义所有支持的算法的公共接口:

编程设计模式—策略模式

ConcreteStrategy,封装了具体的算法或行为,继承于Strategy

编程设计模式—策略模式

Context,用一个ConcreteStrategy来配置,维护一个对Strategy对象的引用

编程设计模式—策略模式

 客户端调用

编程设计模式—策略模式

测试结果:

编程设计模式—策略模式

——小唐