Reference 型が欲しい


Reference 型を使いたいシーンが多々ある。例えば以下のようなコード。

var hoge:Hoge = new Hoge();
var task:HogeInitTask = new HogeInitTask(hoge);

これは、タスクで、Hoge 型の hoge を初期化するもので、タスクは任意のタイミングで実行される。タスクの中身は

class HogeInitTask {
public function run():Void {
this.hogeRef = HogeInitializer.doSomething();
}
}

このような感じ。これだと、初期化の処理が代入なので、hogeRef が hoge への参照では無くなってしまう。従って

class HogeInitTask {
public function run():Void {
this.hogeRef.init(HogeInitializer.doSomething());
}
}

メソッドの呼び出しにしているが、そもそもの設計がまずい気もする。

BeInteractive 製 Reference 型の、value を Object 型にしたくないとなると、各クラスごとに Reference 型を作らねばならないので、迷ったあげく上記の方法に逃げた。C# の ref パラメータの挙動が理想だ。

カテゴリー: Flash   パーマリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>