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

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.kler.cn/a/150114.html

相关文章:

  • MYSQL安装(ubuntu系统)
  • 【IEEE出版 | EI稳定检索】2024智能机器人与自动控制国际学术会议 (IRAC 2024,11月29-12月1日)
  • vue props无法被watch
  • StandardThreadExecutor源码解读与使用(tomcat的线程池实现类)
  • 【系统架构设计师】2022年真题论文: 论湖仓—体架构及其应用(包括解题思路和素材)
  • uniapp 使用vue/pwa
  • 网络安全如何自学?
  • 深圳市东星制冷机电受邀莅临2024国际生物发酵展,济南与您相约
  • Spring的依赖注入,依赖注入的基本原则,依赖注入的优势
  • 【Vulnhub 靶场】【Coffee Addicts: 1】【简单-中等】【20210520】
  • 01_原理-事件循环
  • docker (简介、dcoker详细安装步骤、容器常用命令)一站打包- day01
  • [密码学]DES
  • 二维数值型数组例题2
  • k8s中批量处理Pod应用的Job和CronJob控制器介绍
  • 【机器学习 | 可视化系列】可视化系列 之 决策树可视化
  • filebeat日志收集工具
  • shiro整合redis
  • 匿名内部类(内部类) - Java
  • git-4
  • 前五年—中国十大科技进展新闻(2012年—2017年)
  • leetcode面试经典150题——30 长度最小的子数组
  • Leetcode—15.三数之和【中等】
  • Attacking Fake News Detectors via Manipulating News Social Engagement(2023 WWW)
  • 黑马程序员索引学习笔记
  • PTA:猜帽子游戏 ,C语言