简单的工厂模式

本文介绍了使用C#实现的简易计算器程序,并对比了使用简单方法与工厂模式的不同实现方式。通过具体代码示例展示了如何根据用户输入进行基本算术运算。

所有的代码都是根据大话设计模式而来的

在没有看设计模式的时候

要我做下面的题目

简易计算器代码

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { try { Console.WriteLine("请输入第一个数"); double a = double.Parse(Console.ReadLine()); Console.WriteLine("请输入您想要运算的符号!"); string Opreation = Console.ReadLine(); Console.WriteLine("请输入第二个数"); double b = double.Parse(Console.ReadLine()); Console.WriteLine("运算后的结果为:{0}", GetResults(a, Opreation, b)); } catch (Exception ex) { Console.WriteLine("输入信息由错误:{0}", ex.Message); } } public static double GetResults(double Pre, string Opreation, double Next) { double Results = 0; switch (Opreation) { case "+": Results = Pre + Next; break; case "-": Results = Pre - Next; break; case "*": Results = Pre * Next; break; case "/": if (Next == 0) { Console.WriteLine("被除数不能为0"); } else { Results = Pre / Next; } break; default: Results = -1; break; } return Results; } } }

看我工厂模式之后代码如下

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Opreation { private double _Number1; public double Number1 { set { _Number1 = value; } get { return _Number1; } } private double _Number2; public double Number2 { set { _Number2 = value; } get { return _Number2; } } public virtual double GetResult(double N1,double N2) { double Results=N1+N2; return Results; } } //加法 class OpreationPlus : Opreation { public override double GetResult(double N1, double N2) { return base.GetResult(N1, N2); } } //减法 class OpreationMinus : Opreation { double Minus = 0; public override double GetResult(double N1, double N2) { Minus = N1 - N2; return Minus; } } //乘法 class OpreationMultiply : Opreation { double Multiply = 0; public override double GetResult(double N1, double N2) { Multiply = N1 * N2; return Multiply; } } //除法 class OprationDivide : Opreation { double Divide = 0; public override double GetResult(double N1, double N2) { if (N2 == 0) { Console.WriteLine("被除数不能为0~~"); } else { Divide = N1 / N2; } return Divide; } } //工厂类 class Factory { //根据不同的操作类型生产不同的实例 public static Opreation FactoryOpreation(string Method) { Opreation Opreation = null; switch (Method) { case "+": Opreation = new OpreationPlus(); break; case "-": Opreation = new OpreationMinus(); break; case "*": Opreation = new OpreationMultiply(); break; case "/": Opreation = new OprationDivide(); break; default: break; } return Opreation; } } class Result { static void Main() { Console.WriteLine("请输入第一个数字"); double Number1 = double.Parse(Console.ReadLine()); Console.WriteLine("请输入您想要运算的符号!"); string Opreation = Console.ReadLine(); Opreation Produce = Factory.FactoryOpreation(Opreation); Console.WriteLine("请输入第二个数字"); double Number2 = double.Parse(Console.ReadLine()); Console.WriteLine("预算后的结果是:{0}", Produce.GetResult(Number1, Number2)); } } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值