使用C#面向对象实现简易计算器(简单工厂模式)
操作流程:
1. 新建Operation类
2. 新建OperationAdd类,并继承Operation类
3. 新建OperationSub类,并继承Operation类
4. 新建OperationMul类,并继承Operation类
5. 新建OperationDiv类,并继承Operation类
6. 新建创造实例的工厂类OperationFactory
7. Main方法操作根据传入的运算符创造相对应的操作类,并执行相对应的运算逻辑
1、新建Operation类
    public class Operation
    {
        public double numberA { get; set; }
        public double numberB { get; set; }
        public virtual double getResult()
        {
            return 0;
        }
    }
2. 新建OperationAdd类,并继承Operation类
    public class OperationAdd : Operation
    {
        //实现操作加法运算
        public override double getResult()
        {
            double result = 0;
            result = numberA + numberB;
            return result;
        }
    }
3. 新建OperationSub类,并继承Operation类
    public class OperationSub : Operation
    {
        //实现减法操作
        public override double getResult()
        {
            double result = 0;
            result = numberA - numberB;
            return result;
        }
    }
4. 新建OperationMul类,并继承Operation类
    public class OperationMul : Operation
    {
        //实现乘法操作
        public override double getResult()
        {
            double result = 0;
            result = numberA * numberB;
            return result;
        }
    }
5. 新建OperationDiv类,并继承Operation类
    public class OperationDiv : Operation
    {
        //实现除法操作
        public override double getResult()
        {
            double result = 0;
            if (numberB == 0)
                throw new Exception("除数不能为0");
            result = numberA / numberB;
            return result;
        }
    }
6. 新建创造实例的工厂类OperationFactory
    public class OperationFactory
    {
        public static Operation CreateOperate(string operate)
        {
            Operation oper = null;
            switch (operate)
            {
                case "+":
                    oper = new OperationAdd();
                    break;
                case "-":
                    oper = new OperationSub();
                    break;
                case "*":
                    oper = new OperationMul();
                    break;
                case "/":
                    oper = new OperationDiv();
                    break;
                default:
                    break;
            }
            return oper;
        }
    }
7. Main方法操作根据传入的运算符创造相对应的操作类,并执行相对应的运算逻辑
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                Operation oper = OperationFactory.CreateOperate("+");
                oper.numberA = 3;
                oper.numberB = 2;
                double result = oper.getResult();
                Console.WriteLine(result);
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.ReadLine();
                throw;
            }
        }
    }

使用C#面向对象实现简易计算器(简单工厂模式)的更多相关文章
- [Python设计模式] 第1章 计算器——简单工厂模式
		github地址:https://github.com/cheesezh/python_design_patterns 写在前面的话 """ 读书的时候上过<设计模 ... 
- 简单工厂模式的C++实现
		用简单工厂模式实现一个计算器类: #include <iostream> #include <string> using namespace std; class Operat ... 
- C++ | 简单工厂模式 | 复数计算器
		简单工厂模式最直观的一个应用便是实现一个计算器的程序. 比如,公司让你给计算器添加一个幂运算的功能,你只需要设计一个幂运算的类,并实现幂运算的逻辑,然后让该类继承自运算类即可. 简单工厂模式: 简单工 ... 
- java:面向对象(多态,final,抽象方法,(简单工厂模式即静态方法模式),接口)
		* 生活中的多态:同一种物质,因环境不同而表现不同的形态. * 程序中多态:同一个"接口",因不同的实现而执行不同的操作. * 多态和方法的重写经常结合使用,子类重写父类的方法,将 ... 
- PHP面向对象-设计模式   单例模式  简单工厂模式 工厂方法模式
		1.单例模式 单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例的特殊类.通过单例模式可以保证系统中一个类只有一个实例.即一个类只有一个对象实例. 要实现每一个类只有一个实例,就需 ... 
- PHP中“简单工厂模式”实例讲解
		原创文章,转载请注明出处:http://www.cnblogs.com/hongfei/archive/2012/07/07/2580776.html 简单工厂模式:①抽象基类:类中定义抽象一些方法, ... 
- 设计模式 | 简单工厂模式(static factory method)
		按理说应该把书全都看完一遍,再开始写博客比较科学,会有比较全面的认识. 但是既然都决定要按规律更新博客了,只能看完一个设计模式写一篇了. 也算是逼自己思考了,不是看完就过,至少得把代码自己都敲一遍. ... 
- 代码无错就是优?简单工厂模式 C#
		还是那几句话: 学无止境,精益求精 十年河东,十年河西,莫欺少年穷 学历代表你的过去,能力代表你的现在,学习代表你的将来 废话不多说,直接进入正题: 现在给你一道面试题,如下: 请用C++,C#,Ja ... 
- iOS设计模式:简单工厂模式
		1.简述 首先需要说明一下,简单工厂模式不属于23种GOF设计模式之一.它也称作静态工作方法模式,是工厂方法模式的特殊实现(也就是说工厂模式包含简单工厂模式).这里对简单工厂模式进行介绍,是为后面的工 ... 
- Java 设计模式01 -  简单工厂模式
		先要学习设计模式之前的先看看一些基础 UML类图简单说明 可以先看看我的这篇博客: UML类图简单说明,学习编程思路的必会技能 接下来才是重点,开始我们的旅程吧. 一.UML类图展示 我们要用简单工厂 ... 
随机推荐
- [TimLinux] myblog 首页创建
			1. 设计 2. 结构 3. 实现 templates/common/layout.html: <!DOCTYPE html> <html lang="zh"&g ... 
- 前端flex布局学习笔记
			flex布局,即为弹性布局,其为盒模型提供最大的灵活性,任何一个容器都可以指定为flex布局. eg:.box{ display:flex: } 行内元素也可以使用flex布局. 注意:设置flex布 ... 
- Typora常见的快捷方式
			操作类型 操作 快捷键 文件操作 新建 Ctrl + N 新建窗口 Ctrl + Shift + N 打开 Ctrl + O 快速打开 Ctrl + P 保存 Ctrl + S ... 
- Orleans的入门教程
			Orleans的入门教程 官方Hello World 地址 https://github.com/dotnet/orleans/tree/master/Samples/2.0/HelloWorld ... 
- 新版FPC摄像头测评 OV7725 OV7670 OV9650 OV9655 OV5640 OV5642 OV2640 OV3640 MT9D112
			新版FPC摄像头测评 OV7725 OV7670 OV9650 OV9655 OV5640 OV5642 OV2640 OV3640 MT9D112 最新制样新版FPC摄像头板卡,先看看结构尺寸 再瞧 ... 
- ES6中export default与export的区别
			1.export default 和export都可以用于导出常量,函数,文件,模块等: 2.可以在模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使 ... 
- 一篇文章带你解读Redis分布式锁的发展史和正确实现方式
			前言 近两年来微服务变得越来越热门,越来越多的应用部署在分布式环境中,在分布式环境中,数据一致性是一直以来需要关注并且去解决的问题,分布式锁也就成为了一种广泛使用的技术,常用的分布式实现方式为Redi ... 
- CCF-CSP题解 201812-4 数据中心
			题目要求最长边最小的生成树.好吧,这就是一道kruskal MST题. #include <bits/stdc++.h> const int maxn = 50000; const int ... 
- poj 3241 Object Clustering (曼哈顿最小生成树)
			Object Clustering Time Limit: 2000MS Memory Limit: 131072K Total Submissions: 2640 Accepted: 806 ... 
- Python中的boolean类型
			Python中所有数据类型的值自带布尔值.如此多的数据类型中只需要记住只有0.None.空.False的布尔值为False,其余的为True. print(bool(0)) print(bool(No ... 
