九折技术 九折技术
首页
  • Go
  • MIT-6824
  • 算法与数据结构
  • 面向对象
  • 代码整洁
  • 重构
  • 设计模式
  • 学习
  • 技术
  • 人文
关于
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub

HoldDie

长期有耐心,一切才刚刚开始!
首页
  • Go
  • MIT-6824
  • 算法与数据结构
  • 面向对象
  • 代码整洁
  • 重构
  • 设计模式
  • 学习
  • 技术
  • 人文
关于
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub
  • 代码整洁

  • 重构

  • 设计模式

    • 创建型-单例模式
    • 创建型-工厂模式
    • 创建型-建造者模式
    • 创建型-原型模式
    • 结构型-代理模式
    • 结构型-桥接模式
    • 结构型-装饰器模式
    • 结构型-适配器模式
    • 结构型-门面模式
    • 结构型-组合模式
    • 结构型-享元模式
    • 行为型-观察者模式
    • 行为型-模板模式
    • 行为型-策略模式
    • 行为型-责任链模式
    • 行为型-状态模式
    • 行为型-迭代器模式
      • 行为型-访问者模式
      • 行为型-备忘录模式
      • 行为型-命令模式
      • 行为型-解释器模式
      • 行为型-中介模式
    • 架构
    • 设计模式
    holddie
    2020-10-14

    行为型-迭代器模式

    # 迭代器模式

    • 迭代器模式(Iterator Design Pattern),也叫作游标模式(Cursor Design Pattern)。
    • 一个完整的迭代器模式一般会涉及容器和容器迭代器两部分内容,为了达到基于接口而非实现编程的目的,容器又包含容器接口、容器实现类,迭代器又包含迭代器接口、迭代器实现类。
    • 迭代器模式将集合对象的遍历操作从集合类中拆出来,放到迭代器类中,让两者的职责更加单一。
    • 迭代器模式让添加新的遍历算法更加容易,更符合开闭原则。除此之外,因为迭代器都实现自相同的接口,在开发中,基于接口而非实现编程,替换迭代器也变得更加容易。

    cb72b5921681ac13d4fc05237597d2ec

    # 理解

    • 对于迭代器的设计,就是在原本本身的正常的 add 和 remove 功能之外,当需要遍历的时候,我们使用 Iteration 进行快照。

    • 快照可以有两种方式

      • 第一种方式,在每次创建迭代器的时候都把原先的数据复制一份到迭代器中,这样迭代器中的修改和之前原数据就么有关系,完成自己迭代操作。
      • 第二种方式,如果数据量比较大,此时每创建一个迭代器空间开销比较大,如何我们取巧,在每个数据中不仅有数据,还添加一个创建时间和结束时间,这样在创建快照的时候,我们自己有一个快照时间,然后,只有在 createTime < snapshotTime < endTime 区间的数据才是本次迭代的数据。
    编辑
    #迭代器模式
    上次更新: 2020/11/29, 15:11:00
    行为型-状态模式
    行为型-访问者模式

    ← 行为型-状态模式 行为型-访问者模式→

    最近更新
    01
    行为型-访问者模式
    11-24
    02
    行为型-备忘录模式
    11-24
    03
    行为型-命令模式
    11-24
    更多文章>
    Theme by Vdoing | Copyright © 2019-2020 HoldDie | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式