知识卡片
策略模式的定义与三个角色
内容
策略模式定义一组算法,把每个算法封装起来并使其可互换。三个角色:Context封装角色(持有 抽象策略引用);Strategy抽象策略角色(算法家族的抽象接口);ConcreteStrategy具体策略 角色(实现具体算法)。调用时只需context.operate(),不关心内部执行的是哪个策略。发散: 策略模式是”面向接口编程+多态”的具名化,价值在于把”一组可互换算法”这个概念显式建模。
参考来源
- 位置:《设计模式之禅(第2版)》第18章《策略模式》(源文件:_epub-src/text/part0080.html、part0081.html)
- 结论依据:原文给出策略模式定义并逐句对应三国案例中的三个妙计(算法)、Context封装类(封装角色)、可互换的IStrategy实现(可互换性),说明"策略模式使用的就是面向对象的继承和多态机制"。
- 原始内容:定义一组算法,将每个算法都封装起来,并且使它们之间可以互换……Context封装角色,它也叫做上下文角色,起承上启下封装作用,屏蔽高层模块对策略、算法的直接访问……策略模式使用的就是面向对象的继承和多态机制。