ObjectBuilder分析1

objectbuilder流程:

1,program.cs


//初始化各策略(共九个)Strate和默认方针Policy
 Builder builder = new Builder();

 //调builderbase.cs中的BuildUp<TestObject>方法
 TestObject obj = builder.BuildUp<TestObject>(new Locator(), null, null);

2,builderbase.cs

a,BuildUp<TestObject>方法


b,object BuildUp(..)方法

//重点在c方法中的chain.Head.BuildUp(..)真正创建对象方法
//chain.Head.BuildUp(..)依次调用各策略类中的BuildUp(..)方法,
//并调用builderstrategy.cs类中的object BuildUp(..)向下查询后面的策略方法


c,object DoBuildUp(..)方法
    object obj2 = chain.Head.BuildUp(context, typeToBuild, existing, idToBuild);

3,builderstrategy.cs


4,各策略类(typemappingstrategy.cs-->singletonstrategy.cs-->...按照Builder类初始化顺便执行,返回也是以反向返回)


说明:
CreationStrategy.cs中void InitializeObject(..)方法是真正用反组装对象的方法,可用test02.cs调试跟踪进入此方法中。

posted on 2011-04-12 16:44  netyaya  阅读(255)  评论(0)    收藏  举报

导航