ひがやすを技術ブログ

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

S2Container

S2ContainerはType2(プロパティベース)、Type3(コンストラクタベース)
どちらでも動きます。
引数のないpublicなコンストラクタがあればType2、
そうでなければ、最も引数の多いコンストラクタを使ってType3で
動作します。
GirlとBoyの例だと


S2Container container = new S2ContainerImpl();
container.register(Girl.class);
container.register(Boy.class);
Girl girl = (Girl) container.getComponent(Girl.class);
girl.kissYourKissable();
となり、GirlがType2、Type3どちらでもコードは同じです。
コンポーネントバインディングは、型を使って
自動的に行われます。
コンポーネントバインディングは、サービス固有の型を使って、
自動的に行うべきだと考えています。
従来の設定ファイルに書いてあったような汎用的な型の値は、
明示的に指示する必要がありますが。
Type2の場合、一部のプロパティは明示的に指定し、
残りは、自動バインディングさせることができます。
XMLを使ったコンポーネントの組み立て機能はまだ未実装です。