您的位置:首页 > 其它

2.Abstract Factory 抽象工厂(创建型模式)之简单工厂

2013-09-22 00:23 357 查看
简单工厂

1.只有一个工厂(具体的,没有抽象)

2.只生产一种产品(抽象的产品)

3.这种产品可以有多种具体产品类型(派生)



代码实现

class Program
{
static void Main(string[] args)
{
int number1 = 1;
int number2 = 2;
Compute compute = SimpleFactory.GetComputer("+");
compute.Number1 = number1;
compute.Number2 = number2;
Console.WriteLine(compute.GetResult());

Console.ReadKey();
}
}

/// <summary>
/// 简单工厂
/// </summary>
public static class SimpleFactory
{

public static Compute GetComputer(string operate)
{
Compute computer = null;
switch (operate)
{
case "+":
computer = new AddCompute();
break;
case "-":
computer = new SubCompute();
break;
case "*":
computer = new ChengFaCompute();
break;
case "/":
computer = new ChuFaCompute();
break;
default:
break;
}
return computer;
}
}

/// <summary>
/// 计算类
/// </summary>
public abstract class Compute
{
protected int number1;

public int Number1
{
get { return number1; }
set { number1 = value; }
}
protected int number2;

public int Number2
{
get { return number2; }
set { number2 = value; }
}

public abstract int GetResult();

}

/// <summary>
/// 加法
/// </summary>
public class AddCompute : Compute
{
public override int GetResult()
{
return number1 + number2;
}
}
/// <summary>
/// 减法
/// </summary>
public class SubCompute : Compute
{
public override int GetResult()
{
return number1 - number2;
}
}
/// <summary>
/// 乘法
/// </summary>
public class ChengFaCompute : Compute
{
public override int GetResult()
{
return number1 * number2;
}
}

/// <summary>
/// 除法
/// </summary>
public class ChuFaCompute : Compute
{
public override int GetResult()
{
return number1 / number2;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐