内容:定义一系列的算法,把他们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。
    角色:
    抽象策略(Strategy)
    具体策略(ConcreteStrategy)
    上下文(Context)
    适用场景:
    许多相关的类仅仅是行为有异。
    需要使用一个算法的不同变体
    算法使用可客户端无需知道的数据
    一个类中的多种行为以多个条件语句的形式存在,可以将这些行为封装如不同的策略类中。