1) 从网页原代码里获取所需的值:
例:
private void Button1_Click(object sender, EventArgs e) { string a = textBox1.Text; string b = textBox2.Text; string c = comboBox1.Text; celue cl = new celue(a, b, c); //将策略类实例化并传值 label5.Text = Convert.ToString(cl.result());//调取策略类的方法 }
2) 创建基类:将获取的值封装,并添加方法。
例:
namespace gongcheng { public class jisuan //将获取的值封装 { private decimal _a; public decimal a { get { return _a; } set { _a = value; } } private decimal _b; public decimal b { get { return _b; } set { _b = value; } } public virtual decimal getresult() //创建虚拟方法 { decimal c = 0; return c; } }
3 创建逻辑功能类,比如两数相乘
例:
namespace gongcheng { public class zhengchang:jisuan //继承基类 { public override decimal getresult() //重写方法 { return a * b; } }
4 创建简单工厂类:并传值
例:
namespace gongcheng { public class factiory { public static jisuan creatclass(string c) //将获取的下拉列表里的值传进来 { jisuan j = null; if (c == "正常") //如果下拉列表框的值为正常 { j = new zhengchang(); //那么调用zhengchang方法类里的方法 } if ( c == "满300减100") // 如果下拉列表框的值为满300减100 { j = new manjian(); //那么调用manjian方法类里的方法 }
return j; //最后将调取的类返回出去
}
}
}
5 创建策略类 :
例:
namespace gongcheng { public class celue { private jisuan js; //基类封装 public celue(string a, string b, string c) //写个方法并传值 { js = factiory.creatclass(c); //将工厂类方法实例化传值 js.a = Convert.ToDecimal(a); js.b = Convert.ToDecimal(b); } public decimal result() //调用结果 { return js.getresult(); } } }
界面如下: