策略模式
定义一系列算法,将每个算法封装起来,并让它们可以互相替换。策略模式可以让算法独立于使用它的客户而变化,也成为政策模式。
策略模式包含Context(环境类)、Strategy(抽象策略类)和ConcreteStrategy(具体策略类)。
策略模式实例之排序策略
由类图可知,ArrayHandler(数组处理类、环境类)聚合某些(或者依赖注入某个)具体的Sort(具体策略类),并由sort()函数执行所注入的Sort策略。
下面是c++版本的实现。
抽象策略类Sort(抽象排序类)
//抽象策略类Sort(抽象排序类)
class Sort{
public:
virtual vector<int> sort(vector<int> arr) = 0;
};
具体策略类BubbleSort(冒泡排序类)