# 策略模式

> 在计算机编程中，策略模式（英语：strategy pattern，也叫做英语：policy pattern），是一种行为型软件设计模式，它确使可以在运行时选择算法。不再直接的实现一个单一的算法，代码接收运行时指令，选择一个算法家族中的某个算法。

- ID: m01460
- 分类: create
- 领域: 设计思维

## 定义

定义一系列算法，把它们一个个封装起来，并且使它们可相互替换。该模式使得算法可独立于使用它的客户而变化。脚手架作用：保持手段的灵活性。在达成目标（Context）时，把手段（Strategy）模块化。比如“提升销量”是目标，而“打折”、“广告”、“地推”是可插拔的策略。不要把某一种策略死写在公司的基因里。

## 机制

指《设计模式》中一类行为型模式，封装可互换的算法/策略，使调用方在运行时选择不同行为。

## 练习

定义策略接口；实现多个具体策略；上下文持有一个策略并可切换；按情境注入策略。

## 脚手架用法

保持手段的灵活性。在达成目标（Context）时，把手段（Strategy）模块化。比如“提升销量”是目标，而“打折”、“广告”、“地推”是可插拔的策略。不要把某一种策略死写在公司的基因里。

[阅读网页](https://thinkingmodels.site/entries/detail/m01460)
