您的位置:首页 > 其它

简单工厂模式

2016-02-17 16:50 197 查看




工厂管理类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 简单工厂模式
{
/// <summary>
/// 操作工厂
/// </summary>
class OperationFactory
{
/// <summary>
/// 创建当前运算实例
/// </summary>
/// <param name="strOperation"></param>
/// <returns></returns>
public static Operation CreateOperation(string strOperation)
{
Operation operation = null;
switch (strOperation)
{
case "+":
operation = new OperationAdd();
break;
case "-":
operation = new OperationSub();
break;
case "*":
operation = new OperationMul();
break;
case "/":
operation = new OperationDiv();
break;
default:
Console.WriteLine("输入的操作符号有误!");
break;
}
return operation;
}
}
}
界面逻辑类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 简单工厂模式
{
class Program
{
static void Main(string[] args)
{
//界面逻辑代码
Console.WriteLine("简单工厂模式测试");
Console.Write("请输入数字A=>");
double numberA = Convert.ToDouble(Console.ReadLine());
Console.Write("请输入操作符号【+、-、*、/】=>");
string strOperation = Console.ReadLine();
Console.Write("请输入数字B=>");
double numberB = Convert.ToDouble(Console.ReadLine());
Operation operation = OperationFactory.CreateOperation(strOperation);
operation.NumberA = numberA;
operation.NumberB = numberB;
double result = operation.GetResult();
Console.WriteLine("测试结果是=>" + result);
}
}
}
在一下情况下,当需要管理多个子类,且需要更好的维护,才好用。

1.基类架构不变

2.修改继承基类的子类

3.修改工厂管理类

缺点

1.如果添加新的运算类,需要修改工厂管理类,违背了开放--封闭原则
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: