您的位置:首页 > 编程语言 > C#

C#设计模式之简单工厂

2013-02-16 16:38 369 查看
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

简单工厂实现加减乘除

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//运算类

public class Operation

{

public double _numberA;

public double _numberB;

public double NumberA

{

set { _numberA = value; }

get { return _numberA; }

}

public double NumberB

{

set { _numberB = value; }

get { return _numberB; }

}

public virtual double GetResult()

{

double result = 0.0;

return result;

}

}

//加减乘除类

class OperationAdd : Operation

{

public override double GetResult()

{

double result = 0.0;

result = NumberA + NumberB;

return result;

}

}

class OperationSub : Operation

{

public override double GetResult()

{

double restult = 0.0;

restult = NumberA - NumberB;

return restult;

}

}

class OperationMul : Operation

{

public override double GetResult()

{

double result = 0.0;

result = NumberA * NumberB;

return result;

}

}

class OperationDiv : Operation

{

public override double GetResult()

{

double result = 0.0;

if (0 != NumberB)

{

result = NumberA / NumberB;

}

return result;

}

}

//简单工厂类

public class OperationFactory

{

public static Operation CreateOperate(string operate)

{

Operation oper = null;

switch (operate)

{

case "+":

oper = new OperationAdd();

break;

case "-":

oper = new OperationSub();

break;

case "*":

oper = new OperationMul();

break;

case "/":

oper = new OperationDiv();

break;

}

return oper;

}

}

//调用

Operation oper;

oper = OperationFactory.CreateOperate("+");

oper.NumberA = 100;

oper.NumberB = 20;

double result = oper.GetResult();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: