您的位置:首页 > 其它

设计模式:工厂方法模式(Factory Method)

2014-02-11 11:16 495 查看
定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。

工厂方法使一个类的实例化延迟到其子类。

结构图

protected void btnCalculate_Click(object sender, EventArgs e)
{
IFactory factory = null;

string type = ddlType.SelectedValue;
switch (type)
{
case "+":
factory = new AddFactory();
break;
case "-":
factory = new SubFactory();
break;
case "*":
factory = new MulFactory();
break;
case "/":
factory = new DivFactory();
break;
}

try
{
Operation operation = factory.CreateOpertion();
operation.NumberA = Convert.ToInt32(txtNumberA.Text);
operation.NumberB = Convert.ToInt32(txtNumberB.Text);

txtResult.Text = operation.GetResult().ToString();
}
catch (Exception ex)
{

lblMsg.Text = ex.Message;
}

}


View Code
简单工厂模式和工厂方法模式比较

简单工厂:最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相应的类,对于客户端来说,

去除了与具体产品的依赖。(违反了开闭原则

工厂方法:将必要的判断逻辑放在客户端,这样在增加新的产品类时只需要增加相应的工厂类,而不需要修改原来的类,遵

守了开闭原则
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: