当前位置: 首页 > news >正文

CH01_适应设计模式

Iterator模式(迭代器模式)

迭代器模式(Iterator),提供一种方法,顺序访问一个聚合对象中各个元素,而不是暴露该对象的内部表示。

类图结构

在这里插入图片描述

说明

  • Iterator(迭代器)

    该角色负责定义按顺序逐个遍历元素的接口(API)。类图中定义的hasNext和next两个函数。hasNext用于判断是否存在下一个元素,next用于获取元素

  • ConcreteIterator(具体的迭代器)

    该角色负责实现Iterator定义的接口(API)

  • Aggregate(集合)

    该角色负责定义创建Iterator接口对象。

  • ConreteAggregate(具体的集合)

    该角色负责实现Aggregate角色所定义的接口(API)。它会创建出来具体的Iterator角色,即ConcreteIterator角色。

其他

原书中给的例子存在不恰当的地方:BookShelf类与BookShelfIterator之间是相互引用关系,这不是一个好现象;可以将BookShelf中的记录Book对象的数组迁移到BookShelfIterator,这样只保留BookShelf对BookShelfIterator的引用,降低类之间的耦合。

Adapter模式(适配器模式)

适配器模式(Adapter),将一个类的接口转成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

类图

继承实现

在这里插入图片描述

委托实现

在这里插入图片描述

说明

  • Target(对象)

    该角色负责定义所需要的方法。

  • Client(请求者)

    该角色负责使用Target角色所定义的方法进行具体处理。

  • Adaptee(被适配)

    被适配的角色,Adaptee是一个持有既定方法的角色,Target因某种原因无法直接使用这些方法。

  • Adapter(适配)

    Adapter模式的主人公。使用Adapter角色的方法来满足Target角色的需求,这是Adapter模式的目的,也是Adapter角色的作用。

http://www.lryc.cn/news/246229.html

相关文章:

  • 电机工作制
  • qt国际化多语言
  • Java Excel Poi 单元格内置的数据格式
  • 【深入剖析K8s】容器技术基础(三):深入理解容器镜像 文件角度
  • 竞赛选题 题目:基于LSTM的预测算法 - 股票预测 天气预测 房价预测
  • 开源WIFI继电器之源代码
  • NX二次开发UF_CURVE_create_arc_point_point_radius 函数介绍
  • Unsupervised MVS论文笔记(2019年)
  • 2-Python与设计模式--前言
  • 如何判别使用的junit是4还是5
  • C#-创建用于测试的父类StartupBase用于服务注入
  • JMeter之压力测试——混合场景并发
  • Python入门04字符串
  • vue3(四)-基础入门之 fetch 与 axios
  • 2016年五一杯数学建模C题二孩政策问题解题全过程文档及程序
  • 学习c#的第二十四天
  • ELK企业级日志分析平台——logstash
  • laravel8中常用路由使用(笔记四)
  • 理解 <script> 标签的 defer 和 async 属性
  • sql中group by和having的使用
  • 用python自行开发的流星监控系统meteor_monitor(第二篇)
  • Slf4j使用Logback时,Logback如何初始化
  • css之svg 制作圆及旋转
  • 学习.NET验证模块FluentValidation的基本用法(续1:其它常见用法)
  • lv11 嵌入式开发 UART实验 11
  • Ubuntu22.04下打包发布Qt5.15应用程序的方法
  • 初级JVM
  • MySQL数据库 编程入门
  • 6.golang函数
  • 软件可靠性测试常见的方法