CompositeUI-CreateBuilder

在执行CabApplication<TWorkItem>类中的Run()时会调用CreateBuilder():

None.gif          private  Builder CreateBuilder()
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            Builder builder 
= new Builder();
InBlock.gif
InBlock.gif            builder.Strategies.AddNew
<EventBrokerStrategy>(BuilderStage.Initialization);
InBlock.gif            builder.Strategies.AddNew
<CommandStrategy>(BuilderStage.Initialization);
InBlock.gif            builder.Strategies.Add(
new RootWorkItemInitializationStrategy(this.OnRootWorkItemInitialized), BuilderStage.Initialization);
InBlock.gif            builder.Strategies.AddNew
<ObjectBuiltNotificationStrategy>(BuilderStage.PostInitialization);
InBlock.gif
InBlock.gif            builder.Policies.SetDefault
<ISingletonPolicy>(new SingletonPolicy(true));
InBlock.gif            builder.Policies.SetDefault
<IBuilderTracePolicy>(new BuilderTraceSourcePolicy(new TraceSource("Microsoft.Practices.ObjectBuilder")));
InBlock.gif            builder.Policies.SetDefault
<ObjectBuiltNotificationPolicy>(new ObjectBuiltNotificationPolicy());
InBlock.gif
InBlock.gif            
return builder;
ExpandedBlockEnd.gif        }

builder.Strategies.AddNew<EventBrokerStrategy>(BuilderStage.Initialization)这句代码中AddNew的执行情况:

None.gif          public   void  AddNew < TStrategy > (TStageEnum stage)
None.gif            where TStrategy : IBuilderStrategy, 
new ()
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
lock (lockObject)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                stages[stage].Add(
new TStrategy());
ExpandedSubBlockEnd.gif            }

ExpandedBlockEnd.gif        }

None.gif

None.gif          public   void  SetDefault < TPolicyInterface > (TPolicyInterface policy)
None.gif            where TPolicyInterface : IBuilderPolicy
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            SetDefault(
typeof(TPolicyInterface), policy);
ExpandedBlockEnd.gif        }

None.gif

Builder相关类:

转载于:https://www.cnblogs.com/Wingedox/archive/2007/07/22/827519.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值