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调试跟踪进入此方法中。
浙公网安备 33010602011771号