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角色的作用。

相关推荐
阿闽ooo1 天前
中介者模式打造多人聊天室系统
c++·设计模式·中介者模式
小米4961 天前
js设计模式 --- 工厂模式
设计模式
逆境不可逃1 天前
【从零入门23种设计模式08】结构型之组合模式(含电商业务场景)
线性代数·算法·设计模式·职场和发展·矩阵·组合模式
驴儿响叮当20101 天前
设计模式之状态模式
设计模式·状态模式
电子科技圈1 天前
XMOS推动智能音频等媒体处理技术从嵌入式系统转向全新边缘计算
人工智能·mcu·物联网·设计模式·音视频·边缘计算·iot
徐先生 @_@|||2 天前
安装依赖三方exe/msi的软件设计模式
设计模式
希望_睿智2 天前
实战设计模式之访问者模式
c++·设计模式·架构
茶本无香2 天前
设计模式之十六:状态模式(State Pattern)详解 -优雅地管理对象状态,告别繁琐的条件判断
java·设计模式·状态模式
驴儿响叮当20102 天前
设计模式之备忘录模式
设计模式·备忘录模式
驴儿响叮当20102 天前
设计模式之迭代器模式
设计模式·迭代器模式