5

イテレータは、反復する必要があるコレクションについて確実に知る必要があります。コレクションはそのイテレータについても知る必要がありますか?依存関係は一方向ですか、それとも双方向ですか?コレクションに特定のイテレーターの実装に関する知識がある場合、同じコレクションに対して異なるイテレーター戦略を使用できない場合があります。これが私の考えです。私は正しいですか、それとも完全に間違っていましたか?

GoFブックには、イテレータパターンの次の図があります。

ここに画像の説明を入力してください

循環依存を意味していると思います。からとListへの点線についてはよくわかりません。LisIteratorSkipListSkipListIterator

PS:私は毎日Javaを扱っていますが、特定の言語に固有のものというよりは、設計上の問題である可能性があります。

4

2 に答える 2

2

一部の特殊な実装を除くすべての場合、コレクションはイテレータについて知る必要はありません。

この場合の点線は、インスタンス化を示します。あなたが4冊の本のギャングを持っているならば、外植は15ページ、セクション1.6で与えられます。

具体的には、イテレータはJava iterator()のCreateIteratorメソッドによって作成されます。

オタクのユーモア:ジャージーショアの名前は「THEINSTANTATION」だと人々に伝えましょう

于 2013-03-12T21:22:34.483 に答える
1

いいえ、必然的に循環的ではありません。これは、特定のデータ構造に対していつでも新しいイテレータを実装できるという事実によって明らかになります。

たとえば、最初にArrayListの偶数の要素を昇順で生成し、次に奇数のアイテムを降順で生成するイテレータが必要な場合、そのようなものを書き込むことを妨げるものは何もありません。

于 2013-03-12T21:37:45.633 に答える