Design Pattern | Iterator Pattern(イテレーターパターン)
Iteratorパターンとは?
- Iterateという英単語は、何かを繰り返すという意味である。Iteratorは反復子という意味である。
- Iteratorパターンは、集合体の要素に対して順番にアクセスする処理を行うための方式である。
- GoFのデザインパターンでは、振る舞いに関するデザインパターンに分類される。
ある種類のデータ集合がある。このデータには操作や検索などの機能が含まれている。
このうち検索機能と他の機能が混ざって開発されると、クラス間の結合度が増え、コードが読みにくくなる。
Iteratorパターンを使って検索、走査機能を再利用可能にしてみる。
Iteratorパターンのサンプルプログラム
クラス(教室)に学生を入れ、学生の名前を順番に表示するプログラムである。
Class Diagram

例では、要素を順番に走査するIteratorインターフェース、Iteratorを作れる集合体インターフェース、学生クラス、学生を格納するクラス、そのクラスを走査するIterator実装を定義する。
メリット
走査ロジックを集合体オブジェクトから分離できる。クライアントは内部表現を知らずに要素を走査でき、コレクション内部が変わっても走査コードを変更せずに済む。