Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
桃浪十七丶
cpp-design-patterns
提交
456818b9
C
cpp-design-patterns
项目概览
桃浪十七丶
/
cpp-design-patterns
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
cpp-design-patterns
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
456818b9
编写于
10月 03, 2018
作者:
L
liu-jianhao
提交者:
GitHub
10月 03, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Create README.md
上级
932f71b4
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
14 addition
and
0 deletion
+14
-0
Strategy/README.md
Strategy/README.md
+14
-0
未找到文件。
Strategy/README.md
0 → 100644
浏览文件 @
456818b9
# Strategy
## 动机(Motivation)
+
在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的算法也是一个性能负担。
+
如何在运行时根据需要透明地更改对象的算法?将算法与对象本身解耦,从而避免上述问题?
## 模式定义
定义一系列算法,把它们一个个封装起来,并且使它们可互相替换(变化)。该模式使得算法可独立于使用它的客户程序(稳定)而变化(扩展,子类化)。
——《设计模式》 GoF
## 要点总结
+
Strategy及其子类为组件提供了一系列可重用的算法,从而可以使得类型在运行时方便地根据需要在各个算法之间进行切换。
+
Strategy模式提供了用条件判断语句以外的另一种选择,消除条件判断语句,就是在解耦合。含有许多条件判断语句的代码通常都需要Strategy模式。
+
如果Strategy对象没有实例变量,那么各个上下文可以共享同一个Strategy对象,从而节省对象开销。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录