极客班C++设计模式第一周课程笔记——常用模式(1)
2016-09-12 19:38
260 查看
并不是提出一个问题就能一下子找对合适的设计模式,通常是在重构中获得模式。 寻找变化点 —> 在变化点处应用设计模式。
①模板方法 Template Method
模式定义:定义一个操作中算法的骨架(稳定),将一些步骤(变化)延迟到子类中。使得一个子类可以不改变一个算法的整体结构而重写该算法内部的一些步骤。
非常常用的一种手法,将小的具体的实现过程模块化。
具体实现中,被调用的虚方法可以具有实现也可以没有具体的实现(纯虚),一般推荐设置为protected方法。
②策略模式 Strategy
将对象与算法解耦。
定义:定义一系列算法,将他们一个个封装起来,并且使他们可以互相替换(变化),该方法使得算法可独立于使用它们的客户程序(稳定)而变化。
③观察者模式 Observer
解耦“通知依赖关系”
定义:定义对象间一种一对多(变化)的依赖关系,使得当一个对象(Subject)的状态变化时,所有依赖他的对象都得到通知,并自动更新。
目标发送通知时,不需要指定观察者,通知(可以携带通知信息作为参数)会自动传播。观察者自己决定是否需要订阅通知,目标对象一无所知。
①模板方法 Template Method
模式定义:定义一个操作中算法的骨架(稳定),将一些步骤(变化)延迟到子类中。使得一个子类可以不改变一个算法的整体结构而重写该算法内部的一些步骤。
非常常用的一种手法,将小的具体的实现过程模块化。
具体实现中,被调用的虚方法可以具有实现也可以没有具体的实现(纯虚),一般推荐设置为protected方法。
②策略模式 Strategy
将对象与算法解耦。
定义:定义一系列算法,将他们一个个封装起来,并且使他们可以互相替换(变化),该方法使得算法可独立于使用它们的客户程序(稳定)而变化。
③观察者模式 Observer
解耦“通知依赖关系”
定义:定义对象间一种一对多(变化)的依赖关系,使得当一个对象(Subject)的状态变化时,所有依赖他的对象都得到通知,并自动更新。
目标发送通知时,不需要指定观察者,通知(可以携带通知信息作为参数)会自动传播。观察者自己决定是否需要订阅通知,目标对象一无所知。
相关文章推荐
- 极客班C++设计模式第二周课程笔记——常用模式(3)
- 极客班C++设计模式第二周课程笔记——常用模式(2)
- 极客班C++(上)第一周课程笔记
- 【博览网】设计模式——第一周课程笔记
- 极客班C++设计模式第一周课堂笔记——设计原则
- Android 高级UI设计笔记23:Android 夜间模式之 两种常用方法(降低屏幕亮度+替换theme)
- 设计模式学习笔记七:常用设计模式原则总结
- CS231n课程学习笔记(六)——常用的激活函数总结
- 【吴恩达】机器学习课程第一周笔记
- 工作笔记--5种最常用的设计模式
- .net开发笔记(十三) Winform常用开发模式第一篇
- 模式识别课程学习笔记(一)
- Boolan博览网C++开发课程第一周笔记
- 【Java常用类库】_观察者设计模式笔记
- 常用正则表达式模式匹配学习笔记
- C++ 常用设计模式(学习笔记)
- 极客班C++(下)第一周笔记——operator+的几种实现
- 极客班STL第三次课程笔记——泛型算法
- RHCE课程-RH033Linux基础笔记二之安装LINUX及常用命令介绍
- 模式识别课程笔记(一)