源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

浅析.net简单工厂模式

  • 时间:2020-09-09 01:11 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:浅析.net简单工厂模式
编程时一门技术,更是一门艺术 简单工厂模式利用面向对象方式通过继承、封装、多态把程序的耦合度降低,设计模式使得程序更加灵活,容易修改,易于复用。 下面是服务器计算器代码:
[u]复制代码[/u] 代码如下:
 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;          }      }  }
[u]复制代码[/u] 代码如下:
  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种设计模式后续更新
[u]复制代码[/u] 代码如下:
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设计模式中的简单工厂模式的内容了,非常简单,下一篇,我们来谈谈策略模式
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部