デザインパターンおさらい #1 Iterator

前回の続きで、Iteratorパターンについて説明します。 javaの勉強を兼ねて、javaIterator可能なクラスを実装するための方法を紹介します。

増補改訂版Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門

 

Iterator

ある集合体が存在する時に、その集合の要素全てを走査し、各要素に処理を行うためのパターンです。 for文で配列を走査する方法を、他の集合に対しても行えるように抽象化している。

for (int i = 0; i < list.size(); ++i) { process_element(list[i]); }

for( E element : list) { process_element(element); }

のようにかけるのです.

javaにおいて、AggreateインターフェースはIterableインターフェースである。 Iterableインターフェースはiteratorメソッドが定義されていて、それはIteratorを返す。 Iteratorインターフェースは

  • +hasNext
  • +next
  • +remove

の3つを定義し、Iterableなクラスに対して実装することを義務付けます。

まあ、このパターンは有名で簡単ですね。