简单工厂模式
业务和界面分离
//一个计算器的例子
//不同计算的共性抽象于此类
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 result = 0;
return result;
}
}
//加法类
//默认修饰符是internal,当前工程中的代码可访问
class OperationAdd : Operation
{
public override double GetResult()
{
double result = 0;
result = NumberA + NumberB;
return result;
}
}
//工厂类
public class OperationFactory
{
public static Operation createOperate(string operate)
{
Operation oper = null;
switch(operate)
{
case "+":
oper = new OperationAdd();
break;
//...
}
return oper;
}
}
//客户端代码
Operation oper;
//工厂类本身没有实例化
oper = OperationFactory.createOperate("+");
oper.NumberA = 1;
oper.NumberB = 2;
double result = oper.GetResult();
浙公网安备 33010602011771号