ObjectBuilder 学习笔记

        [TestMethod]
        
public void CanCreateInstances()                                                    //测试是否能够创建实例
        {
            Builder builder 
= new Builder();                                                //对象建造器
            Locator locator = CreateLocator();                                              //定位器

            ConstructorPolicy policy 
= new ConstructorPolicy();                             //建立一个构造策略
            policy.AddParameter(new ValueParameter<int>(12));                               //为策略加入参数
            builder.Policies.Set<ICreationPolicy>(policy, typeof(SimpleObject), null);      //将此策略加入建造器

            SimpleObject m1 
= builder.BuildUp<SimpleObject>(locator, nullnull);           //建造对象
            SimpleObject m2 = builder.BuildUp<SimpleObject>(locator, nullnull);

            Assert.IsNotNull(m1);
            Assert.IsNotNull(m2);
            Assert.AreEqual(
12, m1.IntParam);
            Assert.AreEqual(
12, m2.IntParam);
            Assert.IsTrue(m1 
!= m2);
        }

        [TestMethod]
        
public void CanCreateSingleton()
        
{
            Builder builder 
= new Builder();
            Locator locator 
= CreateLocator();

            ConstructorPolicy policy 
= new ConstructorPolicy();
            policy.AddParameter(
new ValueParameter<int>(12));
            builder.Policies.Set
<ICreationPolicy>(policy, typeof(SimpleObject), null);
            
//为SimpleObject添加单实例策略。
            builder.Policies.Set<ISingletonPolicy>(new SingletonPolicy(true), typeof(SimpleObject), null);  

            SimpleObject m1 
= builder.BuildUp<SimpleObject>(locator, nullnull);
            SimpleObject m2 
= builder.BuildUp<SimpleObject>(locator, nullnull);

            Assert.AreSame(m1, m2);
        }

 

posted @ 2006-03-14 20:41 编写人生 阅读(413) 评论(0)  编辑 收藏

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接: