迭代器必须知道它必须迭代的集合.集合还必须知道它的迭代器吗?依赖是单向还是双向?如果集合具有关于特定迭代器实现的知识,则可能无法为同一集合使用不同的迭代器策略.这是我的想法.我是对的还是我完全错了?
GoF书中有关于Iterator模式的图表:
我认为这意味着循环依赖.我不确定从List到LisIterator和SkipList到SkipListIterator的虚线.
P.S:我每天都在处理Java,但可能更多的是设计问题,而不是特定于特定语言.
解决方法
除了一些专门的实现之外,集合不需要知道迭代器.
这种情况下的虚线表示实例化.如果您有4本书的帮派,则说明见第15页第1.6节.
具体来说,迭代器是由Java iterator()中的CreateIterator方法创建的.
极客幽默:告诉人们泽西海岸的名字是“即时”