fc2ブログ

俺カスタムなイテレータ (2)

2008/08/31 19:02 - デザインパターン


インターフェイス


イテレータのインターフェイス IIterator.as

package {
 public interface IIterator{
  function hasNext():Boolean;
  function next():Object;
 }
}

コレクションのインターフェイス ICollection.as

package {
 public interface ICollection{
  function iterator():AqIterator;
 }
}

クラスの設計





対象配列
target = [ Shape0, Shape1, Shape2, Shape3, Shape4 ];

アクセス配列
access = [0, 1, 2, 3, 4];

  1. アクセス配列に reverse や shuffle を適用
  2. アクセス配列に先頭からアクセスし、要素を取得
  3. アクセス配列から取得した要素を対象配列のインデックスとして使用
  4. 対象配列の当該位置にある要素を取得
  5. 2.~4.の繰り返し

アクセス配列を reverse
access = [4, 3, 2, 1, 0];
↓
アクセス配列を先頭から読み込む。
要素を対象配列のインデックスとする
↓
1番目に取り出される対象配列の要素
 target[ access[0] ] = target[4] = Shape4

2番目に取り出される対象配列の要素
 target[ access[1] ] = target[3] = Shape3

3番目に取り出される対象配列の要素
 target[ access[2] ] = target[2] = Shape2

4番目に取り出される対象配列の要素
 target[ access[3] ] = target[1] = Shape1

5番目に取り出される対象配列の要素
 target[ access[4] ] = target[0] = Shape0




シリーズ

にほんブログ村 IT技術ブログへ


スポンサーサイト




コメントの投稿

非公開コメント

タグクラウド

最近の記事
カテゴリ
月別アーカイブ
プロフィール

Aquioux

Author:Aquioux
日曜 Flash プログラマ。
Flash 作品は本館で展示しています。


mailto:aquioux@mail.goo.ne.jp

ブログパーツ

あわせて読みたい

フィードメーター - 閃光的網站・弛緩複合体 -Review Division-


検索/translation
Google



オススメ本

コメント
トラックバック
RSS

Add to Google

Bloglinesで閲読登録

はてなRSSに追加

Subscribe with livedoor Reader

My Yahoo!に追加

Add to Technorati Favorites!

feedpathに追加