• 简单工厂模式实例


    运算类

    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();


     

  • 相关阅读:
    Web 项目分页总结
    Hibernate配置JNDI数据源
    111
    南京信息工程大学实验报告(三)
    南京信息工程大学实验报告(四)
    南京信息工程大学实验报告(二)
    实验报告(一)
    第一次尝试发随笔
    【Selenium2+Python】常用操作
    【敏捷】敏捷下,各类文档砍砍砍?
  • 原文地址:https://www.cnblogs.com/zxhome/p/4151512.html
Copyright © 2020-2023  润新知