324 字
2 分钟
策略模式
文章目录
Strategy Pattern
策略模式是一种行为设计模式, 它能让你定义一系列算法, 并将每种算法分别放入独立的类中, 以使算法的对象能够相互替换。
Structure
策略模式建议找出负责用许多不同方式完成特定任务的类,然后将其中的算法抽取到一组被称为 策略 的独立类中。
名为 上下文(Context) 的原始类必须包含一个成员变量来存储对于每种策略的引用。上下文并不执行任务,而是将工作委派给已连接的策略对象。
上下文不负责选择符合任务需要的算法——客户端会将所需策略传递给上下文。 实际上, 上下文并不十分了解策略, 它会通过同样的通用接口与所有策略进行交互, 而该接口只需暴露一个方法来触发所选策略中封装的算法即可。
因此, 上下文可独立于具体策略。 这样就可在不修改上下文代码或其他策略的情况下添加新算法或修改已有算法了。
