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;
            }
        }
  • 相关阅读:
    [Operate System & Algorithm] 页面置换算法
    [Network] 计算机网络基础知识总结
    [Search Engine] 搜索引擎技术之网络爬虫
    [Search Engine] 搜索引擎分类和基础架构概述
    [Math] 常见的几种最优化方法
    磁盘告警之---神奇的魔法(Sparse file)
    Kubernetes概念之RC
    Kubernetes概念之mater、node
    Centos7允许使用密码登录
    安装gcc-c++报错解决办法
  • 原文地址:https://www.cnblogs.com/yxlblogs/p/3332403.html
Copyright © 2011-2022 走看看