策略模式也是一种非常常用的设计模式,而且也不复杂。下面我们就来看看这种模式。
定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
角色:
抽象策略角色(Strategy): 抽象策略类。
具体策略角色(ConcreteStrategy):封装了继续相关的算法和行为。
环境角色(Context):持有一个策略类的引用,最终给客户端调用。
UML图:
例子:
#include <iostream>
using namespace std;
class WeaponBehav