这个是用面向对象的方法来实现加,减,乘,除的计算,使用了“简单工厂的设计模式”。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 简单公司实现计算1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入第一个数字:");
          double n1=  Convert.ToDouble( Console.ReadLine());
          Console.WriteLine("请输入第二个数字:");
         double n2= Convert.ToDouble(Console.ReadLine());
         Console.WriteLine("请输入一个操作符");
        string oper= Console.ReadLine();
        CalFather cal = Result(oper, n1, n2);
       double result= cal.GetResult();
       Console.WriteLine(result);
       Console.ReadKey();

}

/// <summary>
        /// 简单工厂模式
        /// </summary>
        /// <param name="oper">传入的操作符</param>
        /// <param name="n1">第一个运算的数字</param>
        /// <param name="n2">第二个运算的数字</param>
        /// <returns></returns>
        public static CalFather Result(string oper,double n1,double n2)
        {
            CalFather cal = null;
            switch (oper)
            {
                case "+": cal = new Add(n1, n2);
                    break;
                case "-": cal = new Sub(n1, n2);
                    break;
                case "*": cal = new Ride(n1, n2);
                    break;
                case "/":cal=new Chu(n1,n2);
                    break;
                default: Console.WriteLine("输入有误");
                    break;
            }

return cal;
        }
    }
    /// <summary>
    /// 父类模型,用abstract抽象函数来实现多态
    /// </summary>
    public abstract class CalFather
    {
        public double NumberOne
        {
            get;
            set;
        }
        public double NumberTwo
        {
            get;
            set;
        }

public CalFather(double One,double Two)
        {
            this.NumberOne = One;
            this.NumberTwo = Two;
        }

public abstract double GetResult();
    }
    /// <summary>
    /// 加法的子类
    /// </summary>
    public class Add:CalFather
    {
        public Add(double one,double two):base(one,two)
        {

}
        public override double GetResult()
        {
            return this.NumberOne + this.NumberTwo;
        }
    }
    /// <summary>
    /// 减法的子类
    /// </summary>
    public class Sub:CalFather
    {
        public Sub(double one,double two):base(one,two)
        {

}
        public override double GetResult()
        {
            return this.NumberOne - this.NumberTwo;
        }
    }
    /// <summary>
    /// 乘法的子类
    /// </summary>
    public class Ride:CalFather
    {
        public Ride(double one,double two):base(one,two)
        {

}
        public override double GetResult()
        {
            return this.NumberOne * this.NumberTwo;
        }
    }
    /// <summary>
    /// 除法的子类
    /// </summary>
    public class Chu:CalFather
    {
        public Chu(double one,double two):base(one,two)
        {

}
        public override double GetResult()
        {
            return this.NumberOne / this.NumberTwo;
        }
    }
}

转载于:https://blog.51cto.com/xpqinqun/1974499

C#中的简单工厂设计模式示例相关推荐

  1. java工厂模式和抽象工厂_Java中的抽象工厂设计模式

    java工厂模式和抽象工厂 Welcome to Abstract Factory Design Pattern in java example. Abstract Factory design pa ...

  2. 芝士和奶酪一样吗_使用简单工厂设计模式就像制作芝士蛋糕一样

    芝士和奶酪一样吗 by Sihui Huang 黄思慧 使用简单工厂设计模式就像制作芝士蛋糕一样 (Using the Simple Factory design pattern is a lot l ...

  3. 简单工厂设计模式与工厂设计模式

    工厂设计模式的目的:降低调用者和实现者之间的耦合度.当需求发生变化(增加或改变)时,不改变原有代码的结构. 1.简单工厂设计模式 优点:降低了调用者和实现者之间的耦合度.当引入一个新的实现类型时,只需 ...

  4. 【简单工厂设计模式】

    一:Simple Factory(简单工厂) 1. 何为简单工厂设计模式:                                             在创建一个对象的时候不向客户暴露内部 ...

  5. 工厂设计模式、简单工厂设计模式、抽象工厂设计模式

    一.简单工厂设计模式.工厂设计模式,抽象工厂设计模式总体分析 简单工厂模式 简单工厂模式不是23种里的一种,简而言之,就是有一个专门生产某个产品的类. 比如下图中的鼠标工厂,专业生产鼠标,给参数0,生 ...

  6. Qt下实现简单工厂设计模式

    简述 简单工厂设计模式是一种基础简单而常用的设计模式,对理解封装.继承和多态特性有非常大的帮助.下面就来在Qt下实现简单工厂模式. 代码之路 实现简单工厂至少需要四个类.其中最主要的两个类是工厂类和一 ...

  7. Java设计模式之简单工厂设计模式

    工厂设计模式 简单工厂设计模式是由一个工厂对象决定创建出哪一种产品类的实例.简单工厂设计模式是工厂设计模式家族中最简单实用的模式 我们还是通过例子进行说明 实例场景:假设就是一个工厂生产phone和t ...

  8. Java中的简单工厂模式(转)

    Java中的简单工厂模式 举两个例子以快速明白Java中的简单工厂模式: 女娲抟土造人 话说:"天地开辟,未有人民,女娲抟土为人."女娲需要用土造出一个个的人,但在女娲造出人之前, ...

  9. 设计模式——简单工厂设计模式

    简单工厂设计模式 建立一个工厂类,对实现了同一接口的类进行实例的创建.简单工厂模式的实质是有由一个工厂类根据传入的参数动态的决定应该创建哪一个实现类. /** 简单工厂设计模式* *///抽象接口水果 ...

  10. 设计模式学习笔记(三)工厂模式中的简单工厂、工厂方法和抽象工厂模式之间的区别

    设计模式中的工厂模式(Factory Design pattern)是一个比较常用的创建型设计模式,其中可以细分为三种:简单工厂(Simple Factory).工厂方法(Factory Method ...

最新文章

  1. matlab 实例均命名为,MATLAB复习题
  2. 初学者如何在一周内熟练掌握python?
  3. 《数据分析变革:大数据时代精准决策之道》一导读
  4. 英特尔首款AI芯片终于发布:训练推理两用,历时4年花费5亿美元买来4家公司...
  5. kali Linux 屏幕旋转,MSF基础命令新手指南
  6. 你所知道的都是错的!产品经理的十大认知错误
  7. VS 中配置使用Visual SVN系列 四:SVN Server配置和使用
  8. php 比较2个数组,比较2个数组中的2个数组值Php
  9. [分布式训练] 单机多卡的正确打开方式:PyTorch
  10. php反射机制与依赖注入,利用反射机制实现基本的依赖注入
  11. jqgrid 固定列宽度_jqGrid 设置列宽
  12. “返回顶部”实现一例
  13. ecshop批量打印快递单
  14. java调用萤石对讲_使用java封装萤石开放平台的接口
  15. 表格识别综述与相关实战
  16. meta http-equiv 属性 详解
  17. 桌面的「微信」坏了,「如何恢复」
  18. 计算机模拟爆破过程,基于LSDYNA岩石爆破模拟建模分析
  19. struts的框架介绍
  20. 苹果服务器维护时间表2019,ios 内购详解(2019)

热门文章

  1. dbscan js 实现_DBSCAN在PySpark上的实现
  2. mysql 优化max_Mysql 优化
  3. java 命令行 库_java以太坊库web3j文档
  4. Spring源码-context:component-scan的解析过程
  5. 恐怖的死亡艺术,稻川淳二为自己办了场VR葬礼
  6. Build Apache Module
  7. WebService 分布式事务怎么控制
  8. pandas中merge()函数的用法详解
  9. QProcess解决无交互输入密码问题
  10. git cherry-pick 的使用