Java 迭代器模式的用途。我理解对了吗?

Java 迭代器模式的用途。我理解对了吗?,java,php,oop,design-patterns,Java,Php,Oop,Design Patterns,我最近试图理解所谓的迭代器模式 想一想,我是否理解了它的目的,但我仍然不确定。因此,请纠正我的这一点: 迭代器模式的目的是抽象出数据所在的底层结构 它们被保存了下来。数据结构可以是数组、树、列表 重要的方法是next()(返回对象)、hasNext()(返回布尔值)和remove() 这些方法的实现方式适合所使用的数据结构。所以开发者 使用迭代器实现类的人不必在意。只需使用提供的方法即可 对于实现类的每个迭代器都是相同的 我说得对吗?是的,你的理解几乎涵盖了大部分内容。 要在更技术化的场景中获得

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

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

迭代器模式的目的是抽象出数据所在的底层结构 它们被保存了下来。数据结构可以是数组、树、列表

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

这些方法的实现方式适合所使用的数据结构。所以开发者 使用迭代器实现类的人不必在意。只需使用提供的方法即可 对于实现类的每个迭代器都是相同的


我说得对吗?

是的,你的理解几乎涵盖了大部分内容。
要在更技术化的场景中获得同样的效果,请参考Iterator设计模式

是的,您的理解几乎涵盖了大部分内容。
要在技术性更强的场景中获得同样的效果,请参考迭代器设计模式

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

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

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

需要注意的一个更重要的事情是,interator对集合的内部结构了解得足够多,可以对其进行迭代。集合实例负责为自己创建正确的迭代器(从可能的迭代器族中),并将其返回给客户机


如果您有兴趣阅读更多关于迭代器模式的内容,我已经在我的博客上的一篇文章中详细解释了以上几点:

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

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

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

需要注意的一个更重要的事情是,interator对集合的内部结构了解得足够多,可以对其进行迭代。集合实例负责为自己创建正确的迭代器(从可能的迭代器族中),并将其返回给客户机


如果您有兴趣阅读更多关于迭代器模式的内容,我已经在我的博客上的一篇文章中详细解释了以上几点:

阅读它。或者读一下这篇文章:为什么java和php在标签中?你的返回类型是
hasNext()
next()
错误:
hasNext()
返回布尔值(是我有下一个对象,否我没有)
next
返回下一个对象。PHP中的OOP与Java类似。因此,您在Java中学习的内容也可以使用PHP,反之亦然。不完全正确,但或多或少。读一读。或者读一下这篇文章:为什么java和php在标签中?你的返回类型是
hasNext()
next()
错误:
hasNext()
返回布尔值(是我有下一个对象,否我没有)
next
返回下一个对象。PHP中的OOP与Java类似。因此,您在Java中学习的内容也可以使用PHP,反之亦然。不完全正确,但或多或少。