在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
编程时一门技术,更是一门艺术 简单工厂模式利用面向对象方式通过继承、封装、多态把程序的耦合度降低,设计模式使得程序更加灵活,容易修改,易于复用。 下面是服务器计算器代码: 复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DesignModel { /// <summary> /// 计算器 /// </summary> public class Calculator //创建一个计算器的基类可以接受两个参数,任何算法只需重写计算结果方法即可。 { private double _numberA; private double _numberB; public double NumberA { get { return this._numberA; } set { this._numberA = value; } } public double NumberB { get { return this._numberB; } set { this._numberB = value; } } public virtual double GetResult() { double result = 0; return result; } } /// <summary> /// 加法 /// </summary> public class Add : Calculator //每添加一种计算方式只需添加一个计算类并重写基类方法即可 { public override double GetResult() { return NumberA + NumberB; } } /// <summary> /// 减法 /// </summary> public class Sub : Calculator { public override double GetResult() { return NumberA + NumberB; } } /// <summary> /// 计算器工厂 /// </summary> public class CalculatorFactory { public static Calculator GetResult(string oper) { Calculator calcu = null; switch (oper) { case "+": calcu = new Add(); break; case "-": calcu = new Sub(); break; } return calcu; } } } 复制代码 代码如下: static void Main(string[] args) { Console.WriteLine("请输入数字A:"); string numbera = Console.ReadLine(); Console.WriteLine("请输入运算符:"); string oper = Console.ReadLine(); Console.WriteLine("请输入数字B:"); string numberb = Console.ReadLine(); Calculator c = CalculatorFactory.GetResult(oper); c.NumberA = Convert.ToDouble(numbera); c.NumberB = Convert.ToDouble(numberb); Console.WriteLine(string.Format("{0}{1}{2}={3}", numbera, oper, numberb, c.GetResult())); Console.ReadLine(); } 基本验证没加,学习练习的同学可以自己加上 28种设计模式后续更新 复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DesignModel { /// <summary> /// 计算器 /// </summary> public class Calculator //创建一个计算器的基类可以接受两个参数,任何算法只需重写计算结果方法即可。 { private double _numberA; private double _numberB; public double NumberA { get { return this._numberA; } set { this._numberA = value; } } public double NumberB { get { return this._numberB; } set { this._numberB = value; } } public virtual double GetResult() { double result = 0; return result; } } /// <summary> /// 加法 /// </summary> public class Add : Calculator //每添加一种计算方式只需添加一个计算类并重写基类方法即可 { public override double GetResult() { return NumberA + NumberB; } } /// <summary> /// 减法 /// </summary> public class Sub : Calculator { public override double GetResult() { return NumberA + NumberB; } } /// <summary> /// 计算器工厂 /// </summary> public class CalculatorFactory { public static Calculator GetResult(string oper) { Calculator calcu = null; switch (oper) { case "+": calcu = new Add(); break; case "-": calcu = new Sub(); break; } return calcu; } } } 本文就是.net设计模式中的简单工厂模式的内容了,非常简单,下一篇,我们来谈谈策略模式 |
请发表评论