内部実装を知らずに、オブジェクトの内部表現を公開せずに集約オブジェクトの内部要素を走査することは、PHP イテレーター パターンの定義です。
適用可能なシナリオ:
内部表現を公開せずに集約オブジェクトの内容にアクセスする
集約オブジェクトの複数の走査をサポートする
異なる集約構造を走査するための統一インターフェースを提供する
イテレータパターンインスタンス:
<?php class ConcreteIterator implements Iterator{ private $position = 0; private $arr; function __construct(array $arr){ $this->arr = $arr; } function rewind(){ $this->position = 0; } function current(){ return $this->arr[$this->position]; } function key(){ return $this->position; } function next(){ ++$this->position; } function valid(){ return isset($this->arr[$this->position]); } } $arr = array('xiao hong','xiao ming','xiaohua'); $concreteIterator = new ConcreteIterator($arr); foreach ($concreteIterator as $key => $value) { echo $key."=>".$value."\n"; }
上記はこの記事の内容全体が、PHP のデザイン パターンを学ぶ際に役立つことを願っています。
以上、PHP ファクトリーパターンと PHP デザインパターンのイテレーターパターンを紹介しました。PHP ファクトリーパターンの内容も含めて、PHP チュートリアルに興味のある友人の参考になれば幸いです。