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:如何正确地使用异常详解
    操作系统:基于页面置换算法的缓存原理详解(下)
    php 分页
    修改css
    /Home/Tpl/Equipment/rangeIndex.html 里调用魔板
    logstash 处理各种时间格式
    MySQL 没有索引 锁全表
    nginx 配置多个主机
    RR 插入不影响
    根据div 标签 查看数组@class=modulwrap 下面的/table/tbody/tr/td
  • 原文地址:https://www.cnblogs.com/gouguo/p/4316841.html
Copyright © 2011-2022 走看看