1月8日日记-进一步学习使用委托,理解策略模式和工厂模式

首先贴过来个IoC 容器和Dependency Injection 模式这篇论文,对学习Spring.net很有帮助啊。。IoC 容器和Dependency Injection 模式

然后通过看小菜编程成长记这些篇文章,对策略模式和反射有了点更深入的理解。通过反射,可以动态加载方法,减少判断,时间紧,还是贴代码吧。。

客户端调用
 Factory f=new Factory ();
            DataRow dr 
= ((DataRow[])ds.Tables[0].Select("name='" + cbxType.SelectedItem.ToString() + "'"))[0];
            
//声明一个参数的对象数组
            object[] args = null;
            
//若有参数,则将其分割成字符串数组,用于实例化时所用的参数
            if (dr["para"].ToString() != "")
                args 
= dr["para"].ToString().Split(',');
            
//通过反射实例化出相应的算法对象
           f.setBehavior((Money)Assembly.Load("商场管理软件").CreateInstance("商场管理软件." + dr["function"].ToString(), false, BindingFlags.Default, null, args, nullnull));

 

 

Context环境
class Factory
    {
      
private Money m;
        
//根据条件返回相应的对象
        public void setBehavior(Money a)
        {
            
this.m = a;
         
        }

        
public double GetResult(double money)
        {
            
return m.GetMoney(money);
        }

    }

 

全部代码

嘿嘿,本来还试了把用委托~还是不太熟悉,明天继续加油吧!

posted @ 2010-01-08 13:23  Cleary  阅读(139)  评论(0)    收藏  举报