当前位置: 首页 > 编程笔记 >

浅析.net简单工厂模式

易淳
2023-03-14
本文向大家介绍浅析.net简单工厂模式,包括了浅析.net简单工厂模式的使用技巧和注意事项,需要的朋友参考一下

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

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

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


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

 类似资料:
  • 本文向大家介绍浅析Python 简单工厂模式和工厂方法模式的优缺点,包括了浅析Python 简单工厂模式和工厂方法模式的优缺点的使用技巧和注意事项,需要的朋友参考一下 前言 在《设计模式》一书中工厂模式提到了: 工厂方法模式(Factory Method) 抽象工厂模式 (Abstract Factory) 但是在实际过程中还有一种工厂模式经常被使用,那就是 简单工厂模式(Simple Facto

  • 本文向大家介绍浅析php工厂模式,包括了浅析php工厂模式的使用技巧和注意事项,需要的朋友参考一下 本系列文章来总结一下设计模式在PHP中的应用,这是第二篇创建型模式之工厂模式。 设计模式的一般介绍在第一篇文章讲了,这里就不重复。 工厂模式 实现:定义一个用于创建对象的接口,让子类决定实例化哪一个类。 应用场景:众多子类并且会扩充、创建方法比较复杂。 工厂模式分为三种:简单工厂、工厂方法、抽象工厂

  • 活字印刷 面向对象 话说三国时期,曹操带领百万大军攻打东吴,大军在长江赤壁驻扎,军船连成一片,眼看就要灭掉东吴,统一天下,曹操大悦,于是大宴众文武,在酒席间,曹操诗兴大发,不觉吟道:喝酒唱歌,人生真爽。众文武齐呼:“丞相好诗!于是一臣子速命印刷工匠刻板印刷,以便流传天下。” 样张出来给曹操一看,曹操感觉不妥,说到:“喝与唱,此话过俗,应该为‘对酒当歌’较好!”,于是此臣就命工匠重新来过。工匠眼看连

  • 本文向大家介绍Java设计模式之工厂模式分析【简单工厂、工厂方法、抽象工厂】,包括了Java设计模式之工厂模式分析【简单工厂、工厂方法、抽象工厂】的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java设计模式之工厂模式。分享给大家供大家参考,具体如下: 一、 简单工厂 先来思考一个问题。我们平时写程序时,会有这种情况,A对象里面需要调用B对象的方法,这时我们使用的一般是new关键字来创建

  • //抽象类 enum SpliterType { BinaryType = 0, TxtYype = 1 }; class ISplitter { public: virtual void split() = 0; virtual ~ISplitter() {} }; //具体类 class BinarySplitter : public ISplitter { public: voi

  • 一、简单工厂模式简介 1.定义 简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 2.使用动机 考虑一个简单的软件应用场景:一个软件系统可以提供多个外观不同的