// 运算基础类
public class Operation
{
private double _numberA = 0;
private double _numberB = 0;
public double NumberA
{
get {return _numberA;}
set {_numberA = value;}
}
public double NumberB
{
get{return _numberB;}
set{_numberB = value;}
}
public virtual double GetResult()
{
double resulet = 0;
return resulet;
}
}
// 加法
class OperationAdd:Operation
{
public override double GetResult()
{
double reasult = 0;
reasult = NumberA + NumberB;
return reasult;
}
}
// 减法
class OperationSub:Operation
{
public override double GetResult()
{
double reasult = 0;
reasult = NumberA - NumberB;
return reasult;
}
}
// 简单工厂模式,管理算法类
public class OperationFactory
{
public static Operation CreateOperate(string operate)
{
Operation opr = null;
switch(operate)
{
case "+":
opr = new OperationAdd();
break;
case "-":
opr = new OperationSub();
break;
}
return opr;
}
}
class Program
{
static void Main(string[] args)
{
Operation oper;
oper = OperationFactory.CreateOperate("+");
oper.NumberA = 2;
oper.NumberB = 3;
double reasult = oper.GetResult();
Console.WriteLine(reasult);
Console.ReadKey();
}
}
学习一点点的程杰<大话设计模式>,让自己对写代码有新的认识,决定要花功夫好好钻研钻研。没看简单工厂模式之前,可能只是简单粗暴的把功能实现了,但是代码的维护性来说,确实增加了很多麻烦。而增加了一个工厂管理类 OperationFactory,后面添加新的运算方法,也就是增加一个新的类和在工厂管理类中增加相应的运算符号,而不必修改其他的代码。
参考:程杰<大话设计模式>