zoukankan      html  css  js  c++  java
  • 设计模式-创建型模式-抽象工厂模式

    抽象工厂模式

     抽象工厂模式是对简单工厂模式的封装

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace SimpleFactory
    {
        public class Operation
        {
            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 OperationMultiplication : Operation
        {
            public override double GetResult()
            {
                double result = 0;
                result = NumberA * NumberB;
                return result;
            }
        }
    
        public class OperationDivision : Operation
        {
            public override double GetResult()
            {
                if(NumberB==0)
                {
                    throw new Exception("除数不能为0!!!记住啦");
                }
                else
                {
                    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 OperationMultiplication();
                        break;
                    case "/":
                        oper = new OperationDivision();
                        break;
                }
                return oper;
            }
        }
    
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("请输入第一个数字:");
                double numberA = double.Parse(Console.ReadLine());
                Console.WriteLine("请输入操作符:");
                string opera = Console.ReadLine();
                Console.WriteLine("请输入第二个数字");
                double numberB=double.Parse(Console.ReadLine());
                Operation oper = new Operation();
                oper = OperationFactory.CreateOperate(opera);
                oper.NumberA = numberA;
                oper.NumberB = numberB;
                double result = oper.GetResult();
                Console.WriteLine(result.ToString());
                Console.ReadKey();
            }
        }
    }
  • 相关阅读:
    SQL SERVER常用函数
    SQL SERVER系统表
    How do I implement a cancelable event?
    sql之left join、right join、inner join的区别
    inno setup脚本,涵盖了自定义安装界面,调用dll等等应用
    MS SQL SERVER 数据库日志压缩方法与代码
    SQLSERVER:计算数据库中各个表的数据量和每行记录所占用空间
    mysql记录执行的SQL语句
    powershell 激活WIN10
    jfinal undertow web.xml
  • 原文地址:https://www.cnblogs.com/chenyongblog/p/3397720.html
Copyright © 2011-2022 走看看