ModelGlue:Unityを使って本格的なアプリケーションを考えようと、過去の記事やModelGlue、ColdSpring、Reactorの公式サイトのドキュメントを眺めていました。
そんなところに、Sean CorfieldがNandoのブログを紹介しているのが目に留まりました。
彼は、ModelGlueやColdSpringのメーリングリストにおいて、NewBie的なアプローチから大きな貢献をしているので、彼の書く記事は私と同じ目線、つまり独学でColdFusionやオブジェクト指向(OO)を学んでいるため、非常に共感できるものがあります。
彼の記念すべき第一回目の記事は、The Mystery of AutoWiring in Model-Glue Unity。
つまり、ModelGlue:UnityにおけるAutoWiringに関するものです。
AutoWiringは、ColdSpringの公式ドキュメントにおいて、以下のように定義されています。
"autowire"は、Bean定義用xmlファイルでお互いの依存性を定義せずに、ColdSpringのbeanFactoryが依存する相互のオブジェクトを自動的に結合する能力のことを指します。
このことをNandoも、最初のころはなんのこっちゃ全然わからんかったと言っています。
MGを学ぼうとする人々を困らせるように思えるものの1つは、autowiring機能です。
多くの人々が、ドキュメンテーションでまだそれほど明確に説明していないので、それが存在するのを知ってさえいないかもしれません。
autowiringを使いこなすには、ColdSpringを少しいじくる必要があります。
ColdSpringがColdFusionと異なった名称を使うので、最初は外国に行ったみたいな感覚になります。
ColdSpringでは、CFCをBean、structをmap、arrayをlist などと呼びます。
しかし、あなたがいったん使用される用語を翻訳して、少しそのやり方に慣れると、突然として、とても簡単に使用することができるようになります。
そして、Nando曰く、ModelGlue:UnityにおけるAutoWiringとは、次のようなことであると・・・
簡単に言うと、AutoWiringは、ColdSpringを使用してModelGlueのコントローラに記述されたCFCに初期化パラメータを注入する非常に便利な方法です。
そのことを、EmailServiceを例にとって、以下のように説明しています。
アプリケーション規模が大きくなると、おそらくModelGlueコントローラ内でサービスレイヤのCFCを初期化する必要が生じるでしょう。
そして、おそらくアプリケーションを論理的な単位に分割するため、複数のコントローラを使用し始めるでしょう。
そうなると、例えば、EmailService自身を初期化する代わりに、EmailServiceを必要とする各々のコントローラのinit()メソッドで、ColdSpringが作成するEmailServiceのインスタンスに初期化パラメータを注入する際に、AutoWiringを使えばいいのです。
うーん、こういう風に説明されると、とてもしっくりと頭に入ります。
以前の記事で紹介したように、第三世代のMVCフレームワーク、即ちModel層における単調なコードの繰り返し記述を回避するため、Modelをビジネスロジック、サービス、パーシスタントという複数レイヤに分割することを支援してくれるんだなーという実感です。
最近のコメント