構成材質解明

続いて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