抽象基类(也可以用接口等实现):运算的基类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 简单工厂模式_四则运算 { abstract class Operation { protected double a; protected double b; public void SetValue(double a,double b) { this.a = a; this.b = b; } public abstract double GetResult(); } }
派生类:加减乘除运算
1.加法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 简单工厂模式_四则运算 { class Jia:Operation { public override double GetResult() { return a + b; } } }
2.减法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 简单工厂模式_四则运算 { class Jian:Operation { public override double GetResult() { return a - b; } } }
3.乘法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 简单工厂模式_四则运算 { class Cheng:Operation { public override double GetResult() { return a * b; } } }
4.除法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 简单工厂模式_四则运算 { class Chu:Operation { public override double GetResult() { if(b!=0) { return a / b; } else { throw new Exception("除数为0"); } } } }
5.等等。。。。
工厂类:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 简单工厂模式_四则运算 { class FactoryOperation { public static Operation GetOperation(double a,double b,string operation) { Operation value = null; if(operation=="+") { value = new Jia(); } else if(operation=="-") { value = new Jian(); } else if(operation=="*") { value = new Cheng(); } else if(operation=="/") { value = new Chu(); } value.SetValue(a, b); return value; } } }
主程序调用:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 简单工厂模式_四则运算 { class Program { static void Main(string[] args) { var x = FactoryOperation.GetOperation(3, 0, "/"); double result = x.GetResult(); Console.WriteLine(result); Console.ReadKey(); } } }
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:设计模式学习1:简单工厂模式实现加减乘除等运算 - Python技术站