首页/开发/代码质量与评审速查/迭代器模式 Iterator(行为型)
设计原则与模式62 条

迭代器模式 Iterator(行为型)

提供顺序访问聚合元素的统一方式而不暴露内部结构:语言内建(for-each、生成器)已成默认形态;自定义迭代器要处理并发修改与失效语义。

意图统一遍历协议、封装内部结构
形态hasNext/next 或语言生成器
风险遍历中容器被修改(fail-fast)

生成器形态(Python)

生成器形态(Python)
def walk(tree):
    yield tree.value
    for child in tree.children:
        yield from walk(child)

易错点

  • 迭代器暴露内部游标:封装目标落空
  • 并发修改未定义行为:静默错乱或抛错不一致

数据来源与参考

  • 《设计模式》(GoF)· Iterator
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌