Skip to content

策略模式

定义一系列的算法,将其一一封装,并且使他们可以相互替换。策略模式的核心思想是将算法的实现与使用算法的代码分离,从而使得算法的变化独立于使用算法的客户端

  • 算法:任何功能函数的逻辑
  • 封装:把某一功能点对应的逻辑提取出来
  • 替换:把某一功能点对应的逻辑提出来;可替换建立在封装的基础上,只能说这个替换的判断过程,不能 if-else,而需要考虑更有的映射方案

策略模式的组成部分

  • 策略接口(Strategy Interface): 定义一个公共接口,所有具体策略都要实现这个接口
  • 具体策略(Concrete Strategies):实现策略接口的具体算法或行为
  • 上下文(Context):持有一个策略对象的引用,并可以在运行时选择和切换不同的策略