设计模式笔记


1: 桥模式

  • 介绍:将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。
  • 类图
  • 适用场景:需要将两组不同的功能组合来用时,可以考虑用“桥”将这两组功能组合起来。
  • 优点:1.分离抽象接口及其实现部分。2.桥接模式提高了系统的可扩充性,在两个变化维度中任意扩展一个维度,都不需要修改原有系统。

2: 装饰者模式

  • 介绍:动态地给一个对象增加一些额外的职责(Responsibility),就增加对象功能来说,装饰模式比生成子类实现更为灵活。
    A_Decorator decoratorA = new A_Decorator (new Object1);
  • 类图
  • 适用场景:需要动态地将功能添加到对象上时,使用装饰者模式。不改变接口但要增强功能。
  • 优点:1.装饰模式与继承关系的目的都是要扩展对象的功能,但是装饰模式可以提供比继承更多的灵活性。2.可以通过一种动态的方式来扩展一个对象的功能,通过配置文件可以在运行时选择不同的装饰器,从而实现不同的行为。

3: 观察者模式

  • 介绍:定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。观察者模式又叫做发布-订阅(Publish/Subscribe)模式
  • 类图
  • 适用场景:一个对象的改变将导致其他一个或多个对象也发生改变,而不知道具体有多少对象将发生改变,可以降低对象之间的耦合度。
  • 优点:1.观察者模式可以实现表示层和数据逻辑层的分离,并定义了稳定的消息更新传递机制,抽象了更新接口,使得可以有各种各样不同的表示层作为具体观察者角色。2.观察者模式支持广播通信。

4: 策略模式

  • 介绍:定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化,也称为政策模式(Policy)。
  • 类图
  • 适用场景:一个系统需要动态地在几种算法中选择一种。
  • 优点:1.策略模式提供了管理相关的算法族的办法。2.策略模式提供了可以替换继承关系的办法。
    3.使用策略模式可以避免使用多重条件转移语句。

GeekBand C++ 设计模式 第一周笔记相关推荐

  1. biostar handbook: 第一周笔记汇总+第二周任务布置

    第一周笔记汇总 昨天和一位也在自学生信的同学交流自学的心境,他在我的唆使之下也在简书更新自己的笔记,可以搜索小郑的学习笔记.期间,他说道 非常庆幸自己能够坚持把自己学到的知识和困惑以文字的形式记录下来 ...

  2. 计算机图形学多边形填充代码_计算机图形学 Computer Graphics (第一周笔记及课件翻译)...

    本文使用 Zhihu On VSCode 创作并发布 注:本文部分内容源自于UDE课程 Computer Graphics(Prof. Dr. Jens Krüger),仅供本人自己学习与作为课程笔记 ...

  3. Boolan第一周笔记(二)对于第一周作业的一点总结

    本文主要总结下面的问题: 1.为什么这周的作业里面,创建数组的时候使用堆内存更好: 2.指针指向不同类型走的步数不同. 第一周作业内容如下,题目来自Boolan: 为Date类实现如下成员: 1. 构 ...

  4. PaddlePaddle课程学习第一周笔记

    人工智能.机器学习.深度学习的关系 机器学习的过程分为假设.评价和优化三个阶段: 假设:通过观察加速度a和作用力F的观测数据,假设aaa和FFF是 线性关系,即a=w∗Fa = w * Fa=w∗F. ...

  5. Python语言程序设计(嵩天老师版)第一周笔记

    一.程序设计 1.计算机是根据指令操作的设备. (1)计算机具有功能性和可编程性.二者缺一,就不叫计算机了. 功能性指的是对数据操作,表现为数据计算.输入输出处理和结果存储: 可编程性指根据一些列指令 ...

  6. 我滴python第一周笔记

    我的第一节python课~~~ 穹妹镇楼 为了巩固知识点,回顾总结之前先看一个好东西: 对象类型 类型名称 示例 简要说明 数字 int.float.complex 1234, 3.14, 1.3e5 ...

  7. 吴恩达卷积神经网络课程——第一周笔记

    Week 1 目录 Week 1 1-1.计算机视觉 1-2.边缘检测示例 1-3.更多关于边缘检测内容 1-4.Padding 1-5.卷积步长 1-6.卷积为何有效 1-7.单层卷积网络 1-8. ...

  8. 工作室课题-第一周笔记

    通过一周的练习 复习到了很多的知识 比如:冒泡排序 选择排序等等 用代码块的方式来呈现最近学到的以及复习到的知识点 递归搜索: void DFS(int x) {if(x==n&&Ju ...

  9. 《Linux内核分析》第一周笔记 计算机是如何工作的

    一.计算机是如何工作的? 1.存储程序计算机工作模型 1)冯诺依曼体系结构 学习研究计算机的基本概念.就是指存储程序计算机.所有的有计算功能的电子设备小到计算器,大到超级计算机核心部分都可以用这种体系 ...

  10. C++刷力扣、PAT第一周笔记

    最近,出于巩固复习C++与数据结构.学习高级算法.准备PAT考试的需要,我开始照着网上的刷题教程,在力扣和PAT平台上逐题攻坚.以下是一些收获: [1]map容器的使用 make_pair返回pair ...

最新文章

  1. 观点|重磅出炉!29页《业内观点:机器人行业的未来》
  2. java oracle exp_java中使用oracle的exp/imp导出、导入数据
  3. ASP.NET MVC学习系列(一)-WebAPI初探
  4. 华为HCIE RS都考什么?(含选择及面试题)
  5. C/Cpp / 条件编译
  6. oracle loop index,oracle index 聚集因子
  7. mysql自定义排序以及优化like模糊查询
  8. MariaDB 10之并行复制--延迟测试结果
  9. python编程(再述rpc)
  10. 关于逻辑或的一个小小应用注意点
  11. 面试鹅厂,我被虐的体无完肤。。。
  12. eclipse的安装与环境配置
  13. 建模助手 —『 CAD图层管理 』Revit视图干净清爽
  14. tomcat配置gc日志输出
  15. 【毕设】selenium 爬取知网作者信息
  16. 使用kindeditor直接粘贴本地图片或者是qq截图
  17. docker知识:docker update (更新参数)
  18. MQTT服务器Mosquitto的使用及配置过程中的一些问题和解决方法
  19. PMP备考大全:经典题库(6月第2周)
  20. 终于搞掂博文自动发送

热门文章

  1. 马原期末复习知识点完整版!
  2. linux里的.mht是什么文件,mht是什么文件?打开mht文件的方法
  3. GIS招聘 | 辽宁省省直事业单位(含测绘、地信等专业岗位)
  4. 放硬币问题的解空间结构
  5. 重磅长文!先进院李骁健等人:在体神经界面技术的发展-从小到大规模记录
  6. UVC 摄像头驱动开发
  7. win7安装打印机 计算机,win7添加网络打印机的详细步骤【图解】
  8. 让XP系统支持GPT硬盘
  9. 华为交换机 查ip冲突_华为交换机怎么通过ip查端口号
  10. 电机振动噪声(NVH)——整数槽和分数槽谐波分析