
338
9
章
Iterator
パターンの定義
Iterator
パターンの定義
Iteratorパターンは、内部表現を公開せずに、ア
グリゲートオブジェクトの要素に順次アクセス
する方法を提供する。
独自のイテレータを使って
Iterator
パターンを実装する
方法は、すでに紹介しました。また、
Java
が一部のコレ
クション指向クラス(
ArrayList
)でイテレータをサポー
トすることも説明しました。ここでは、このパターンの
正式な定義を確認しましょう。
この定義は大いに納得できます。
Iterator
パターンは内
部表現を知ることなく、アグリゲートの要素にアクセス
することができることを、メニューの
2
つの実装を使って
説明しました。しかし、設計でイテレータを使うことに
よる効果も重要です。すべてのアグリゲートオブジェク
トの要素にアクセスするための統一された方法があると、
printMenu()
メソッドのような、すべてのアグリゲートオ
ブジェクトで機能する多態的なコードを書くことができ
ます。イテレータを取得できさえすれば、メニュー項目
が配列や
ArrayList
(またはイテレータを作成できるその
他のもの)のいずれに保存されているかを意識しなくて
もいいのです。
その他の設計上の重要な影響は、
Iterator
パターンが要
素間を走査する責務を担い、その責務をアグリゲートオ
ブジェクトではなくイテレータオブジェクトに与えるこ
とです。これにより、アグリゲートインタフェースと実
装がシンプルになるだけでなく、アグリゲートから反復 ...