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