知识卡片
外部内部迭代
内容
外部迭代由客户端控制步进,灵活但暴露遍历过程;内部迭代由集合控制,简单但不易组合复杂流程。发散:迭代控制权放在哪里,决定了调用者能做多少编排。
参考来源
- 位置:第5章《行为型模式》5.4节「Iterator(迭代器)」9.实现第1点「谁控制该迭代」(源文件:_epub-src/OEBPS/Text/part0084.xhtml)
- 结论依据:原文明确区分外部迭代器(由客户控制迭代,需显式请求下一个元素)和内部迭代器(由迭代器控制,客户只需提交待执行操作),并指出外部迭代器更灵活但内部迭代器使用更容易,直接支持卡片对外部迭代由客户端控制步进、内部迭代由集合控制的论述。
- 原始内容:"当由客户来控制迭代时,该迭代器称为一个外部迭代器;而当由迭代器控制迭代时,该迭代器称为一个内部迭代器……外部迭代器比内部迭代器更灵活……但另一方面,内部迭代器的使用较为容易,因为它已经定义好了迭代逻辑。"