美文网首页Linux学习|Gentoo/Arch/FreeBSDLinuxLinux学习之路
大话设计模式读书笔记-20迭代器模式

大话设计模式读书笔记-20迭代器模式

作者: QuietHeart | 来源:发表于2020-04-17 17:59 被阅读0次
bigtalk.jpg

第20章 想走?可以!先买票——迭代器模式

概念

顺序访问聚合对象中的各个元素,又不暴露对象内部表示。由于非常常用,已经并入很多高级语言中,目前不常出现了。

注意:迭代方式不止从前到后一种。

实现

元素:

  • Aggregate : 抽象聚合类, 包含创建迭代器的接口
  • ConcreteAggregate : 具体聚合类, 包括具体的元素
  • Iterator : 抽象迭代器类,包括 "next", "current", "first", "isdone" 之类的抽象方法。
  • ConcreteIterator: 具体迭代器类,按照特定方式进行迭代,它里面会有一个指向 ConcreteAggregate对象的指针,便于迭代。
  • Client: 创建聚合类、用聚合类创建返回迭代器、用迭代器依次访问聚合类对象。

实现类图

img

客户端使用

img img

作用

迭代器作用是分离了聚合对象的遍历行为,抽象出一个迭代器来负责,又不暴露内部结构让代码透明访问集合内部的数据。

否则,(从前到后、从后到前、从多到少等次序访问的时候,就要借助对象的各个属性来达到遍历的目的,仅仅是遍历这个简单的抽象行为"next, first, current", 却加入那么多对象内部的属性来使得遍历能够进行,这会让代码变得很复杂)

相关文章

网友评论

    本文标题:大话设计模式读书笔记-20迭代器模式

    本文链接:https://www.haomeiwen.com/subject/iivhphtx.html