Skip to content

策略模式 (Strategy Pattern)

定义一系列算法,把它们一个个封装起来,并且使它们可相互替换


一、模式概述

1.1 定义

策略模式(Strategy Pattern)是一种行为型设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以相互替换。策略模式让算法的变化独立于使用算法的客户。

1.2 适用场景

  • 需要在不同时间应用不同的业务规则或算法
  • 需要隐藏复杂的、与算法相关的数据结构
  • 一个类定义了多种行为,并且这些行为以多个条件语句的形式出现

1.3 优缺点

优点缺点
算法可以自由切换策略类数量增多
避免使用多重条件判断所有策略类都需要对外暴露
扩展性良好增加了系统的复杂度

二、实现结构

策略模式包含以下角色:
1. Strategy(策略):定义所有支持的算法的公共接口
2. ConcreteStrategy(具体策略):封装了具体的算法或行为
3. Context(上下文):用一个ConcreteStrategy来配置,维护一个对Strategy对象的引用

三、类图

null

四、相关文档

Released under the MIT License.