ASIoCとは、オープンソースのJavaのSpringらしいActionScript 2のフレームワークです。
まず「IoC」とはなに?という疑問がある方が多いと思います。ここでは簡単で説明します。「IoC」は、Inversion of Control の略、別名Dependency Injectionパターン(制御の反転)ということです。軽量コンテナがなぜ有用なのかというと、制御の反転を実装しているからだという。しかしそれでは私にはなんのことやらさっぱりである。制御の反転は、フレームワークに共通する特性なのだから「軽量コンテナはスゴイ。なんたって制御の反転を使っているからね」と言われても、それは「俺のクルマはスゴイ。なんたって車輪がついているからね」と言うようなものだ。それはSpringというフレームワーク中によく使われているようです。
簡単でと言えば上記の「IoC」を理解すればASIoCが何かできることも理解しましたね。いいものですが、AS3バージョンも対応できれば良いじゃないかと思います。。。
以下はASIoc使用方法と実例の説明です。
ASIocを使えるため、二つの手順が必要です。
Step 1:コンポーネット初期化の説明の定義、それは以下の3種類のやり方で実現できます。
a) 以下の様で直接定義する
- // new instance of asioc container
- var ioc:IoCContainer = new IoCContainerAdapter();
- // new instance of asioc component
- var iocComp:IoCComponent = new IoCComponentAdapter();
- // setting params for ioccomponent
- iocComp.setIoCComponentParams( “SimpleClazz”,// class id
- “org.asioc.example.SimpleClazz”,// class path
- null, // factory method name
- null, // is singleton
- null); // is lazy init
- // registering instance of ioc componnet
- ioc.registerComponent(iocComp);
b) XMLで定義する
- <?xml version=”1.0″ encoding=”UTF-8″?>
- <!DOCTYPE HTML PUBLIC “-//ASIOC//DTD ASBEANS 0.1//EN”
- “http://asioc.sourceforge.net/dtd/asioc-beans.dtd”>
- <asbeans>
- <asbean
- id=”SimpleClazz”
- class=”org.asioc.example.SimpleClazz”/>
- </asbeans>
c) 既存のクラスのインスタンスに登録
- // new instance of asioc container
- var ioc:IoCContainer = new IoCContainerAdapter();
- // new instance of your class
- var obj : SimpleClazz = new org.asioc.example.SimpleClazz();
- // register instance
- ioc.registerComponentInstance(obj, “SimpleClazz”);
Step2:IoCコンテナを利用してクラスのインスタンスを取得する
- var another_obj : SimpleClazz = null;
- another_obj = ioc.getComponentInstance("SimpleClazz");
実際の使用例は公式サイトに参照できます。「ASIoC」を使うため、「AS2Lib」、「Log4as」というライブラリが必要ということご注意ください。
関連リンク
http://asioc.sourceforge.net/ 公式サイト
Posted on Thursday, 23rd April 2009 by admin
Tags: ASIoC, オープンソース, フレームワーク
Posted in ActionScript, Flash Project | Comments (0) | 2,381 views
