Iteratorパターン
目的
[1] Collectionの要素に順番にアクセスする方法 [2] Collectionの構造を意識する必要はない
利点
[1] データ構造を隠蔽する
使いどころ
[1] 集合体を扱うクラスを、自分で作ったとき
実装方法
* オブジェクトの持つデータ構造を非公開にして、以下の2つのメソッドを公開する[1] HasNext()
[2] Next()
* IIteratorインターフェイスが、「クライアント」と「集約オブジェクト」との仲介役
public interface IIterator
{
bool HasNext();
Object Next();
}
イメージ
HasNext() : データありますか?
----------------------------->
true : データあります
<-----------------------------
Next() : ちょーだい
----------------------------->
Object : どうぞ
<-----------------------------
参考文献
http://itpro.nikkeibp.co.jp/article/COLUMN/20051201/225566/http://okwave.jp/qa/q4736366.html
http://www.techscore.com/tech/DesignPattern/Iterator.html
http://troi.kbc-ehime.ac.jp/kj/?p=1861
http://hamasyou.com/archives/000177
http://www.green-sleeves.net/blog/archives/2008/10/271743
http://www.itsenka.com/contents/development/designpattern/iterator.html
http://www.ogis-ri.co.jp/otc/hiroba/technical/DesignPatternsWithExample/chapter02.html
http://ja.wikipedia.org/wiki/Iterator_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3
http://japan.internet.com/column/developer/20090529/26.html
http://www.syboos.jp/sysdesign/doc/20080819233208053.html