您的位置:首页 > 理论基础

传智播客.net培训410抽象类简单工厂模式计算机实现

2012-05-11 20:24 330 查看
在学习了类的继承里氏转换原则后,进行了一个综合练习

在面向对象的编程中编程应该讲究dry原则,尽量进行代码复用,

这样在代码多了以后层次清楚,也便于代码维护扩展,在这样的基础上前人总结了一些框架就是设计模式

工厂模式有时设计模式中最经典之一,蒋坤老师讲的很细致

把方法的调用封装进工厂方法中,有利于以后的代码维护

每种运算方法写成一个类,因为每个类都有两个运算值,所以将运算类写成一个抽象类

public abstract class Calculator

{

//初始化时传入两个运算参数

public Calculator(double n1,double n2)

{

Num1 = n1;

Num2 = n2;

}

public double Num1 { get; set; }

public double Num2 { get; set; }

public abstract double Calculating();

}

因为做演示只写两个计算类,加法和减法

public class Add:Calculator

{

//初始化该类时将两个运算值传给父类,调用基类构造函数赋值

public Add(double d1, double d2):base(d1,d2)

{

}

public override double Calculating()

{

return Num1+Num2;

}

}

减法类

public class Dif:Calculator

{

public Dif(double d1,double d2):base(d1,d2)

{

}

public override double Calculating()

{

return Num1-Num2;

}

}

完成运算类后添加运算工厂类,将工厂方法运算写成静态方法可以直接调用

public class Factory

{

public static Calculator MyFactory(double d1,double d2,string op)

{

switch (op)

{

case "+":

return new Add(d1, d2);

case "-":

return new Dif(d1, d2);

default:

return null;

}

}

}

主函数

static void Main(string[] args)

{

Console.WriteLine("请输入数字,运算符,数字");

double d1 = Convert.ToDouble(Console.ReadLine());

string op = Console.ReadLine();

double d2 = Convert.ToDouble(Console.ReadLine());

Calculator ca = Factory.MyFactory(d1, d2, op);

Console.WriteLine("{0}{1}{2}={3}",d1,op,d2,ca.Calculating());

Console.ReadKey();

}

运算结果;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: