ひがやすを技術ブログ

電通国際情報サービスのプログラマ

プレゼンテーションフレームワークとの連携

IoCコンテナとプレゼンテーションフレームワークとの連携が
難しくなる最大の原因は、IoCコンテナは、コンポーネントの作成を
コンテナがおこなうが、プレゼンテーションフレームワーク
自分が必要なクラスは自分たちで作成するので、
その部分がかみ合わないせいだと思います。
その部分を蜜に結合させようとすると、プレゼンテーションフレームワーク
かなり手を入れることになり望ましくありません。
そこで、考えてみました。
インスタンスの作成は、プレゼンテーションフレームワークにまかせ、
IoCコンテナは、Dependency Injectionに専念すればよいと。
具体的に、S2Containerに次のメソッドの追加を考えています。
injectDependency(Object component)
injectDependency(Object component, Class componentClass)
injectDependency(Object component, String componentName)
例えば、Tapestryなら、ページ名と同じ名前で、コンポーネントを登録して
おき、あるタイミングでS2Container.injectDependency()を呼び出すのです。
ゴールデンウィーク中にTapestryのソースを読んで、適切な方法を考えたいと
思います。連携方法もS2Containerに限定することなく、
他のIoCコンテナとも連携できるようにインターフェースとして
切り出す必要があると思ってます。
Tapestryのチームとも連携取る必要がありますね。