第1回デザインパターン Iterator

NO IMAGE

前回お伝えしたようにデザインパターンについて学んだことをメモしていきます!
第1回目は「Iterator」です。
Iteratorとは・・・
プログラミング言語において配列やそれに類似するデータ構造の各要素に対する繰返し処理の抽象化である。実際のプログラミング言語では、オブジェクトまたは文法などとして現れる。反復するためのものの意味で反復子(はんぷくし)と訳される。繰返子(くりかえし)という妙訳もある。

>やはりウィキペディアで調べただけでは分かりにくいですね・・・
参考にしている本(前回記事参照)ではJAVAでサンプルプログラムを紹介しています。
その上でデザインパターンをドラマのようなものと考え、出てくる登場人物に
対して役(役割)を説明しています。これによりとてもイメージが着きやすいですね!
Iteratorパターンの登場人物
■Iterator(反復子)の役
要素を順番にスキャンしていくインターフェイス(API)を定める。
hasNextメソッド・・次の要素が存在するかどうかを得る。
nextメソッド・・次の要素を得る。
をサンプルプログラムで実装している。
■ConcreteIterator(具体的な反復子)の役
Iterator役が定めたインターフェイスを実際に実装する役。
必要となる情報を格納しており、注目している情報をindexフィールドで
覚えている。
■Aggregate(集合体)の役
Iterator役を作り出すインターフェースを定める役。
iteratorメソッド・・Iteratorを作り出すメソッド。
■ConcreteAggregate(具体的な集合体)の役
Aggregate役が定めたインターフェイスを実際に実装する役。
ConcreteIterator役のインスタンスを作る。
>自分が設計しようと考えたとき、どうしてもConcreteIteratorとConcreteAggregateから
作り出してしまいそうです・・・
 まだまだ、オブジェクト思考が足りないんでしょうね。

while (it.hasNext()){
hoge hoge = (hoge)it.next();
System.out.plintln(“” + hoge.getName());
}
上記のコードでは、whileループはhasNextとNextのIteratorメソッドで構成されており
hogeIteratorには実装されていない。なのでhogeIteratorをどのように修正しようとも
whileループは変更しなくても動作する。
以上がIteratorのまとめです。メモ書き程度なのでこのブログだけ読んでもすべてを理解する
ことは難しいかもしれません。参考程度に。
では。