zoukankan      html  css  js  c++  java
  • 简单工厂模式实例

    运算类

    public class operation
        {
            private double a = 0;
            private double b = 0;
    
            public double A
            {
                get { return a; }
                set { a = value; }
            }
            public double B
            {
                get { return b; }
                set { b = value; }
            }
            public virtual double GetResult()
            {
                double rst = 0;
                return rst;
            }
        }
    

     加减乘除类

    public class Jia : operation 
        {
            public override double GetResult()
            {
                double result = 0;
                result = A + B;
                return result;
            }
        }
        public class Jian : operation 
        {
            public override double GetResult()
            {
                double result = 0;
                result = A - B;
                return result;
            }
        }
        public class Cheng : operation
        {
            public override double GetResult()
            {
                double result = 0;
                result = A * B;
                return result;
            }
        }
        public class Chu : operation
        {
            public override double GetResult()
            {
                double result = 0;
                if(B==0)
                    throw new Exception("除数不能为0");
                result = A / B;
                return result;
            }
        }
    

     工厂类

    public class OperationFactory
        {
            public static operation CreateOperation(string operation)
            {
                operation result = null;
                switch (operation)
                {
                    case "+": result = new Jia(); break;
                    case "-": result = new Jian(); break;
                    case "*": result = new Cheng(); break;
                    case "/": result = new Chu(); break;
                    default:
                        break;
                }
                return result;
            }
        }
    

     控制台请求

     
                Console.Write("请输入第一个数");
                double a =Convert.ToDouble(Console.ReadLine());
                Console.Write("请输入第二个数");
                double b =Convert.ToDouble(Console.ReadLine());
                Console.Write("请输入运算符");
                string opr = Console.ReadLine();
                operation opr2 = OperationFactory.CreateOperation(opr);
                opr2.A = a;
                opr2.B = b;
                double result = opr2.GetResult();
                Console.WriteLine(result);
                Console.ReadLine();


     

  • 相关阅读:
    SQLZOO:SELECT from WORLD Tutorial
    Spyder——小技巧+快捷键
    JDK国内镜像
    debian 安装 plymouth 美化开机动画
    docker 国内镜像加速
    有关npm镜像加速的问题 yarn nvm yrm
    调整vscode工具栏侧边栏字体大小
    github的淘宝代理?
    fcitx5 主题设置
    debian testing安装qemu-kvm和virt-manager
  • 原文地址:https://www.cnblogs.com/zxhome/p/4151512.html
Copyright © 2011-2022 走看看