经典设计模式之策略模式

概述

策略模式定义了一系列算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户端。

一般情况下我们是将一种行为写成一个类方法,比如汽车类中有点火、急加速、急减速、熄火四种方法,而策略模式则是将每一种算法都写成一个类,然后动态地选择使用哪一个算法。

这里所说的算法并不是指 “ 冒泡排序算法 ” 、“ 搜索算法 ” 之类的算法,它可以是一段代码、一个请求或者一个业务操作。

策略模式如下图所示:

经典设计模式之策略模式

从上图可以看到,我们将操作封装到类中,他们实现了同一个接口,然后在 Context 中调用。

这里我们举一个文件导出的例子:

经典设计模式之策略模式