BT

Swiz Frameworkを使ったFlex開発

| 作者: Jon Rose フォローする 0 人のフォロワー , 翻訳者 渡辺 裕之 フォローする 0 人のフォロワー 投稿日 2009年2月28日. 推定読書時間: 3 分 |

Adobe FlexとAIRのコミュニティはJavaコミュニティの黎明期における流行を取り込み続けようと、多くの個人がFlex開発を単純化したり改良するためのフレームワークを提供している。この記事ではSwiz Framework(リンク)のレビューを行う。このフレームワークはJavaのSpringFrameworkが採用している多くの原理を真似る形で作られている。Swiz FrameworkはChris Scott氏(リンク)によって開発され、Apache License 2.0の下で提供されている。

AdobeのTechnical EvangelistであるChristophe Coenraets氏(リンク)は最近、Swiz Frameworkと詳しい使い方についてブログで論じた(リンク)。Christophe氏はまずSwiz Frameworkを下記のように表現している。

Swizは根本的に単純な制御の反転(IoC)を実装したフレームワークです。IoCフレームワークを使うと、アプリケーションのあるコンポーネント(例えばビュー)は自身が依存する他のオブジェクト(協調するオブジェクト)をインスタンス化したり探し出したりする必要がなくなります。フレームワークがそのコンポーネントを生成する際に依存するオブジェクトを注入します(従ってこの方法を“Dependency Injection(依存性の注入)”と呼ぶこともあります)。これによって疎結合が促進され再利用性の高いコンポーネントを生み出すこととなります。Swiz IoC フレームワークで管理されるコンポーネントはbeans(ビーンズ)と呼ばれます。

Christophe氏のサンプル・アプリケーションでは(オブジェクトの)注入に使うSpringに似た記法を紹介している。

Swizは[Autowire]という独自のメタデータを使って、あるbeansを他のbeansやビューに注入します。
inSyncの例では、contactServiceというRemoteObjectが下記のようにしてContactController.asに注入されています。
1
2
[Autowire(bean="contactService")]
public var contactService:RemoteObject;

そして、contactControllerはビューに注入されます。例えばContactForm.mxmlは下記のようになっています。

1
2
[Autowire(bean="contactController")]
public var controller:IContactController;

 

Swiz Frameworkに対する最近のレビューでTony Hillerson氏はAutowiring機能について下記のように論じている。

もしこの機能の存在を知らなかったとしたら、Autowireはとても素敵なものに思えるでしょう。(注入する)モデルがどこから来たものなのかを心配する必要はないのです。シングルトンであるかどうかを気にする必要もありません。そのモデルが必要であるということさえ知っていれば、あとは私達が必要とする時に確実にフレームワークがそれを用意しておいてくれるのです。一つだけ注意することがあります。注入しようとするプロパティはpublicにしておかないとSwizがそれを注入することが出来ません。

Tony氏とChristophe氏は両名ともSwizは簡単に使えるフレームワークであると結論付けている。Christophe氏は以下のように述べている。

Swizを使うのは簡単で楽しいことでした。押しつけがましいこともなく、確かに興味深いアイディアを提供してくれます。

Swizとその機能に関する詳細を知るにはプロジェクトのチュートリアル(リンク)を確認されたい。

原文はこちらです:http://www.infoq.com/news/2009/02/swiz-framework

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT