前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计模式学习之策略模式

设计模式学习之策略模式

作者头像
mzlogin
发布2020-04-16 14:21:13
1380
发布2020-04-16 14:21:13
举报

如下内容是学习《Head First 设计模式》第一部分《设计模式入门》所得,主要就是一些原文的摘抄和少量自己的总结。

OO 原则是我们的目标,设计模式是我们的做法。

OO 原则

  1. 封装变化。
  2. 多用组合,少用继承。
  3. 针对接口编程,不针对实现编程。

在这一部分,书中通过讲解对一个简单 SimUDuck 根据新需求的重新设计,不断优化过程中,顺理成章地将策略模式讲解清楚了,策略模式「严肃」定义:

策略模式定义了算法族,分别封装起来让它们之间可以相互替换,此模式让算法的变化独立于使用算法的用户。

这个模式的存在以前上面的设计原则第一条直接刷新了我之前对 OO 设计的一个认识:

抽象出不变的作为基类,将不同的特化到子类中去。

这个认识本身也没错,但是显然需要结合封装变化的设计原则使用才能适用更多场景,设计出弹性更好的系统来。

书中的示例代码都是使用 java,我用 C++ 将策略模式示例重新实现了一下,源码放在这个 Solution 的 StrategyPattern 工程里

UML 类图如下,Visio 原图见『这里』

Strategy Pattern UML Class Diagram
Strategy Pattern UML Class Diagram
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013/11/23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • OO 原则
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档