• Java设计模式(18)——行为模式之迭代子模式(Iterator)


    一、概述

      概念

      

      UML简图

      

      

      // Aggregate:聚集(集合)

      角色

      抽象迭代子:定义遍历元素所需要的接口

      具体迭代子:实现抽象迭代子接口,保持游标

      聚集/具体聚集:定义/实现创建迭代子对象的接口(返回迭代子iterator)

      客户端:持有聚集及其迭代子的引用

      使用场景

      也即是我们所熟知的集合中的Iterator的迭代器了,假设我们没有迭代模式,那么我们可以通过for循环加索引实现ArrayList的遍历,那LinkedList呢?

    对的,需要使用链表的形式:通过while加上链表的判断来遍历。迭代子模式便是将这个遍历的逻辑从中抽象出来,方便了我们的遍历,也实现了透明化

    的遍历(客户端无需知道集合的内部结构)。

     二、实践

      这里就暂时不展开示例了,可以参考集合章节以及集合相关的源码进行参阅。

      这里我们需要注意的地方就是游标的相关(为何迭代器遍历可以安全的增加与删除?这里的问题就是游标的问题)

      

  • 相关阅读:
    12.22冲刺总结
    Android远程服务
    短信电话监听
    Android本地服务
    意图
    多线程下载
    异步HTTP请求
    提交数据到服务器
    通过HTTP访问网络资源
    观察者
  • 原文地址:https://www.cnblogs.com/jiangbei/p/7763708.html
Copyright © 2020-2023  润新知