美文网首页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