【问题标题】:Purpose of the iterator-pattern. Have I understood it right?迭代器模式的目的。我理解对了吗?
【发布时间】:2016-01-13 08:45:41
【问题描述】:

我最近试图理解所谓的迭代器模式。

想想是否理解它的目的,但我仍然不确定。所以请纠正我这个问题:

迭代器模式的目的是抽象出数据所在的底层结构 被存管。数据结构可以是数组、树、列表...

重要的方法是 next()(返回一个对象)、hasNext()(返回一个布尔值)和 remove()。

这些方法以适合所用数据结构的方式实现。所以开发商 谁使用迭代器实现类不必关心。只需使用提供的方法 每个迭代器实现类都一样。

我说对了吗?

【问题讨论】:

标签: java php oop design-patterns


【解决方案1】:

你总结的没错。迭代器设计模式通过在集合和数据检索器之间提供迭代器接口来隐藏集合\聚合的底层复杂性。

接下来,我们可以通过为迭代器定义一个抽象来提升这一层次。这意味着我们可以编写迭代器以多种方式遍历同一个集合。例如:如果我们有一个二叉树集合,那么我们可以为中序、后序和前序遍历编写三个迭代器。

最后,迭代器模式也允许对被迭代的集合进行抽象。这意味着可以为一系列集合实现一系列迭代器。

需要注意的更重要的一点是,interator 对集合的内部结构有足够的了解,以便能够对其进行迭代。并且集合实例有责任为自己创建正确的迭代器(在可能的迭代器系列中)并将其返回给客户端。

如果您有兴趣阅读有关迭代器模式的更多信息,我已经在我的博客文章中深入解释了上述几点:http://www.javabrahman.com/design-patterns/iterator-design-pattern-in-java/

【讨论】:

    【解决方案2】:

    是的,您的理解几乎涵盖了大部分内容。 要在更多技术场景中获得相同的效果,请参阅 IteratorDesignPattern https://sourcemaking.com/design_patterns/iterator

    【讨论】:

      猜你喜欢
      • 2021-01-29
      • 2017-03-29
      • 1970-01-01
      • 1970-01-01
      • 2013-12-08
      • 2011-08-02
      • 2016-04-18
      • 2011-02-01
      • 1970-01-01
      相关资源
      最近更新 更多