Standard PHP Library(SPL) IteratorAggregateインターフェイス

※この記事は読者によって投稿されたユーザー投稿のため、編集部の見解や意向と異なる場合があります。また、編集部はこの内容について正確性を保証できません。

ヒューマンリソシア株式会社はコラム「Standard PHP Library(SPL) IteratorAggregateインターフェイス」を公開しました。
前回はIteratorインタフェースについて学びました。
Iteratorインタフェース、foreachで使えるように実装するのはいいのですが「データを扱うクラス」と「反復処理を担うクラス」が同じクラス内に機能として同居しています。
もちろんこれはこれで間に合ううちはよいのですが、例えば「あるデータ群を扱うクラス」があり、反復処理にはいくつか「異なるルールでの反復処理をしたい」可能性、なんて事もありえます。

例えば買い物かごで「外税内税」とか「課税対象と対象外」とか「贅沢税のつくものとつかないもの」とか。
コラム12回目でやりましたが、「複数の要素を内包するオブジェクトのすべての要素」という概念をもう少しだけ拡張して「複数の要素を内包するオブジェクトの、任意の条件に当てはまるすべての要素に順にアクセスする方法を提供する」というものがIteratorで提供できたら、それはよりいっそう便利なものにならないでしょうか?

この考えを元に出来ているのがIteratorAggregateインターフェイスです。
GoFのデザインパターンをよくご存じの方は或いは「デザパタではそもそもコンテナオブジェクトの要素を列挙する手段を独立させることによってコンテナの内部仕様に依存しない反復子を提供することを目的としてるんだから当たり前だ」と思う向きもあろうかと思いますが、その「当たり前」がようやく出てきた、と読み取っていただければと思います。

では早速IteratorAggregateインターフェイスを見てみましょう。

IteratorAggregate extends Traversable {
/* メソッド */
abstract public Traversable getIterator ( void )
}

この続きは以下をご覧ください
http://resocia.jp/column/309/

この記事が役に立ったらシェア!
みんなが読んでるWeb担メルマガで、あなたも最新情報をチェック
  • SEOやデジタルマーケの最新情報をゲット
  • 事例やインタビューも見逃さない
  • 要チェックのセミナー情報も届く
みんなが読んでるWeb担メルマガで、あなたも最新情報をチェック
  • SEOやデジタルマーケの最新情報をゲット
  • 事例やインタビューも見逃さない
  • 要チェックのセミナー情報も届く

Web業界の転職情報

もっと見る
Sponsored by

今日の用語

被リンク
自分のサイトにリンクを張ってもらうこと、または張ってもらったリンクのこと。 ...→用語集へ

連載/特集コーナーから探す

インフォメーション

Web担のメルマガを購読しませんか?
Web担の記事がコンパクトに毎週届くメールマガジン「Web担ウィークリー」は、10万人が読んでいる人気メルマガ。忙しいあなたの情報収集力をアップさせる強い味方で、お得な情報もいち早く入手できます。

Web担に広告を掲載しませんか?
購読者数10万人のメールマガジン広告をはじめとする広告サービスで、御社の認知向上やセミナー集客を強力にお手伝いいたします。

サイトマップ
RSSフィード


Web担を応援して支えてくださっている企業さま [各サービス/製品の紹介はこちらから]