5

迭代器肯定必须知道它必须迭代的集合。集合是否还必须知道它的迭代器?依赖是一种方式还是两种方式?如果集合了解特定的迭代器实现,则可能不可能对同一个集合有不同的迭代器策略。这是我的想法。我是对的还是我完全错了?

GoF 书有这个迭代器模式的图表:

在此处输入图像描述

我认为这意味着循环依赖。我不确定从ListtoLisIteratorSkipListto的虚线SkipListIterator

PS:我每天都在处理 Java,但可能更多的是设计问题,而不是特定于特定语言。

4

2 回答 2

2

除了一些专门的实现之外,集合不需要知道迭代器。

在这种情况下,虚线表示实例化。如果你有 4 本书的帮派,解释在第 15 页,第 1.6 节给出。

具体来说,迭代器是由 Java iterator() 中的 CreateIterator 方法创建的。

极客幽默:告诉人们你的泽西海岸名字是“THE INSTANTATION”

于 2013-03-12T21:22:34.483 回答
1

不,它不是必要的循环。您可以随时为给定的数据结构实现新的迭代器这一事实清楚地表明了这一点。

例如,如果您需要一个迭代器,它首先以升序生成 ArrayList 的偶数元素,然后以降序生成奇数元素,那么没有什么可以阻止您编写这些内容。

于 2013-03-12T21:37:45.633 回答