编程时一门技术,更是一门艺术

简单工厂模式利用面向对象方式通过继承、封装、多态把程序的耦合度降低,设计模式使得程序更加灵活,容易修改,易于复用。

下面是服务器计算器代码:

复制代码 代码如下:

 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设计模式中的简单工厂模式的内容了,非常简单,下一篇,我们来谈谈策略模式

您可能感兴趣的文章:

  • .NET简单工厂模式讲解
  • asp.net 简单工厂模式和工厂方法模式之论述
  • JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
  • Android源码学习之工厂方法模式应用及优势介绍
  • 深入c#工厂模式的详解
  • PHP 工厂模式使用方法
  • javascript 模式设计之工厂模式学习心得
  • C++设计模式之简单工厂模式实例
  • JavaScript 模式之工厂模式(Factory)应用介绍
  • .NET工厂方法模式讲解
声明:本站(华域联盟www.cnhackhy.com)所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。