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

        /// <summary>
        /// 运算类
        /// </summary>
        class Operation
        {
            private double _numberA = 0;
            private double _numberB = 0;
            
            /// <summary>
            /// 数字A
            /// </summary>
            public double NumberA
            {
                get{ return _numberA; }
                set{ _numberA = value;}
            }
    
            /// <summary>
            /// 数字B
            /// </summary>
            public double NumberB
            {
                get{ return _numberB; }
                set{ _numberB = value; }
            }
    
            /// <summary>
            /// 得到运算结果
            /// </summary>
            /// <returns></returns>
            public virtual double GetResult()
            {
                double result = 0; 
                return result;
            }
    
           
        }
        /// <summary>
        /// 加法类
        /// </summary>
        class OperationAdd : Operation
        {
            public override double GetResult()
            {
                double result = 0; 
                result = NumberA + NumberB;
                return result;
            }
        }
    
        /// <summary>
        /// 减法类
        /// </summary>
        class OperationSub : Operation
        {
           public override double GetResult()
            {
                double result = 0;
                result = NumberA - NumberB;
                return result;
            }
        }
    
        /// <summary>
        /// 乘法类
        /// </summary>
        class OperationMul : Operation
        {
            public override double GetResult()
            {
                double result = 0;
                result = NumberA * NumberB;
                return result;
            }
        }
    
        /// <summary>
        /// 除法类
        /// </summary>
        class OperationDiv : Operation
        {
            public override double GetResult()
            {
                double result = 0;
                if (NumberB==0)
                    throw new Exception("除数不能为0。");
                result = NumberA / NumberB;
                return result;
            }
        }
        /// <summary>
        /// 运算类工厂
        /// </summary>
        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;
            }
        }
  • 相关阅读:
    nvm安装node的问题
    前端必读:浏览器内部工作原理
    读书笔记:《高性能网站建设指南》
    学习前端我读过的书
    Canvas绘制圆形进度条
    gitlab升级方法
    设置root远程连接ubuntu上mysql
    SpringMVC的@ResponseBody返回JSON,中文乱码问题的解决.
    JSTL 格式化输出 Calendar
    在Maven的配置文件中,自定义私有仓库地址和设置下载的jar包的保存位置
  • 原文地址:https://www.cnblogs.com/suzixuan/p/7044781.html
Copyright © 2011-2022 走看看