首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >迭代器模式的用途。我明白了吗?

迭代器模式的用途。我明白了吗?
EN

Stack Overflow用户
提问于 2016-01-13 08:45:41
回答 2查看 410关注 0票数 0

我最近试着理解所谓的Iterator模式。

想一想,如果理解了它的目的,但我仍然不确定。因此,请纠正我关于这一点:

迭代器模式的目的是抽象出保存数据的底层结构。数据结构可以是数组,树,列表.

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

这些方法是以一种适合于使用的数据结构的方式实现的。因此,使用迭代器实现类的开发人员不必在意。只使用提供的方法,对于每个迭代器实现类都是相同的。

我做得对吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-13 08:55:01

是的,你的理解几乎涵盖了其中的大部分。要在更技术性的场景中获得同样的信息,请参考IteratorDesignPattern patterns/iterator

票数 1
EN

Stack Overflow用户

发布于 2016-01-13 13:52:41

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

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

最后,Iterator模式还允许对正在迭代的集合进行抽象。这意味着我们可以为一个集合实现一个迭代器系列。

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34761991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档