zoukankan      html  css  js  c++  java
  • 设计模式之工厂模式

    运算类

     public class Operation
        {  
            private double _numberA = 0;
            private double _numberB = 0;
    
            public double NumberA { get; set; }
            public double NumberB { get; set; }
    
            public virtual double GetResult()
            {
                double result = 0;
                return result;
            }
        }
    

     加减乘除类

     //加发类
        public class OperationAdd : Operation
        {
            public override double GetResult()
            {
                double result = 0;
                result = NumberA + NumberB;
                return result;
            }
        }
    
        //减法类
        public class OperationSub : Operation
        {
            public override double GetResult()
            {
                double result = 0;
                result = NumberA - NumberB;
                return result;
            }
        }
    
        //乘法类
        public class OperationMul : Operation
        {
            public override double GetResult()
            {
                double result = 0;
                result = NumberA *NumberB;
                return result;
            }
        }
    
        //除法类
        public class OperationDiv: Operation
        {
            public override double GetResult()
            {
                double result = 0;
                result = NumberA / NumberB;
                return result;
            }
        }
    

     简单运算工厂

      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;
                }
                return oper;
            }
    
        }
    

     调用代码

      static void Main(string[] args)
            {
                try
                {
                    Console.Write("请输入数字A:");
                    string strNumberA = Console.ReadLine();
                    Console.Write("请选择运算符号(+,-,*,/):");
                    string strOperate = Console.ReadLine();
                    Console.Write("请选择数字B:");
                    string strNumberB = Console.ReadLine();
                    Operation oper;
                    oper = OperationFactory.createOperate(strOperate);
                    oper.NumberA = Convert.ToDouble(strNumberA);
                    oper.NumberB = Convert.ToDouble(strNumberB);
                    double result = oper.GetResult();
                    Console.WriteLine("结果是:" + result);
                    Console.ReadLine();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("您输入的有错:"+ex.Message);
                }
            }
    
  • 相关阅读:
    Java Number & Math 类
    excel小技巧-转置(表的横向纵向倒过来)
    excel小技巧-提取填充
    excel小技巧-分列
    Java switch case语句
    if...else
    12.15个人总结
    12.9个人总结
    11.29个人总结
    11.25日个人总结
  • 原文地址:https://www.cnblogs.com/gouguo/p/4316841.html
Copyright © 2011-2022 走看看