構成材質解明
続いてObjectBuilderの構成
- ストラテジ・・・オブジェクトの生成と破棄の実行を管理する
- ステージ・・・複数のストラテジを保持する。
- ポリシー・・・オブジェクトの生成に関する情報を保持する
- ステージは生成段階に応じて4段階に分類される。IBuilderStrategyChain
- PreCreation・・・オブジェクトを生成する前段階。
- Creation・・・オブジェクトの生成段階。
- Initialization・・・生成されたオブジェクトの初期化段階。
- PostInitialization・・・生成されたオブジェクトを返す段階。
- 各段階別のクラス一覧
- PreCreation関連クラス
クラス名 | 動作 | 入力 | 出力 | 場所 | |
TypeMapping Strategy | 任意のインターフェイスや抽象クラスから、それらを継承する任意の型へ変換する | IType Mapping Policy | - | ObjectBuilder.Strategies.TypeMapping | |
Singleton Strategy | 指定された型のオブジェクトがすでに存在する場合はそれを返し、存在しない場合は新しく生成する | Locator | - | ObjectBuilder.Strategies.Sigleton | |
Constructor Reflection Strategy | InjectionConstructorAttributeの付いたコンストラクタを探し、ConstructorPolicy(ICreationPolicyを継承)を作成する | リフレクション | ICreation Policy | ObjectBuilder.Strategies | |
Property Reflection Strategy | ParameterAttributeの付いたプロパティを探し、PropertySetterPolicyを作成する | リフレクション | IProperty Setter Policy | ObjectBuilder.Strategies.Property | |
Method Reflection Strategy | InjectionMethodAttributeの付いたメソッドを探し、MethodPolicyを作成する | リフレクション | IMethod Policy | ObjectBuilder.Strategies.Method |
-
- Creation関連クラス
クラス名 | 動作 | 入力 | 出力 | 場所 |
Creation Strategy | コンストラクタまたはActivatorクラスを使ってオブジェクトを生成する。ISingletonPolicyがあるならLocatorに登録する | ICreation Policy ISingleton Policy | Locator | ObjectBuilder.Strategies.Creation |
-
- Initialization関連クラス
クラス名 | 動作 | 入力 | 出力 | 場所 |
Property Setter Strategy | IPropertySetterPolicyを基にプロパティに値を設定する | IProperty Setter Policy | - | ObjectBuilder.Strategies.Property |
Method Execution Strategy | IMethodPolicyを基にメソッドを実行する | IMethod Policy | - | ObjectBuilder.Strategies.Method |
-
- Post Initialization関連クラス
クラス名 | 動作 | 入力 | 出力 | 場所 |
Builder Aware Strategy | オブジェクト生成の完了を通知する | - | - | ObjectBuilder .Strategies .BuilderAware |