zoukankan      html  css  js  c++  java
  • 2.Abstract Factory 抽象工厂(创建型模式)之简单工厂

    简单工厂

    1.只有一个工厂(具体的,没有抽象)

    2.只生产一种产品(抽象的产品)

    3.这种产品可以有多种具体产品类型(派生)

    代码实现

    class Program
        {
            static void Main(string[] args)
            {
                int number1 = 1;
                int number2 = 2;
                Compute compute = SimpleFactory.GetComputer("+");
                compute.Number1 = number1;
                compute.Number2 = number2;
                Console.WriteLine(compute.GetResult());
    
                Console.ReadKey();
            }
        }
    
        /// <summary>
        /// 简单工厂
        /// </summary>
        public static class SimpleFactory
        {
            
            public static Compute GetComputer(string operate)
            {
                Compute computer = null;
                switch (operate)
                {
                    case "+":
                        computer = new AddCompute();
                        break;
                    case "-":
                        computer = new SubCompute();
                        break;
                    case "*":
                        computer = new ChengFaCompute();
                        break;
                    case "/":
                        computer = new ChuFaCompute();
                        break;
                    default:
                        break;
                }
                return computer;
            }
        }
    
        /// <summary>
        /// 计算类
        /// </summary>
        public abstract class Compute
        {
            protected int number1;
    
            public int Number1
            {
                get { return number1; }
                set { number1 = value; }
            }
            protected int number2;
    
            public int Number2
            {
                get { return number2; }
                set { number2 = value; }
            }
    
            public abstract int GetResult();
            
        }
    
        /// <summary>
        /// 加法
        /// </summary>
        public class AddCompute : Compute
        {
            public override int GetResult()
            {
                return number1 + number2;
            } 
        }
        /// <summary>
        /// 减法
        /// </summary>
        public class SubCompute : Compute
        {
            public override int GetResult()
            {
                return number1 - number2;
            }
        }
        /// <summary>
        /// 乘法
        /// </summary>
        public class ChengFaCompute : Compute
        {
            public override int GetResult()
            {
                return number1 * number2;
            }
        }
    
        /// <summary>
        /// 除法
        /// </summary>
        public class ChuFaCompute : Compute
        {
            public override int GetResult()
            {
                return number1 / number2;
            }
        }
  • 相关阅读:
    Docker部署LAMP项目
    Linux学习4-部署LAMP项目
    Docker环境安装
    Python数据库读写
    Python读取和写入Excel文件数据
    Python读取和写入txt,csv文件数据
    Linux学习1-软件测试从业者的高频Linux命令
    Docker的基础命令
    TurtleBot3 MODEL的相应说明
    ROS2 SLAM(同时定位和地图绘制)
  • 原文地址:https://www.cnblogs.com/yxlblogs/p/3332403.html
Copyright © 2011-2022 走看看