当前位置: 首页 > news >正文

一、简单工厂模式

@#

public class Operation  //基类
    {
        private double _numberA = 0;
        private double _numberB = 0;
        public double NumberA
        {
            get
            { return _numberA; }
            set
            {
                _numberA = value;
            }
        }
        public double NumberB
        {
            get
            { return _numberB; }
            set
            {
                _numberB = value;
            }
        }
        public virtual double GetResult()
        {
            double result = 0;
            return result;
        }
    }

##

    class OperationAdd:Operation    //加法类
    {
        public override double GetResult()
        {
            double result = 0;
            result = NumberA + NumberB;
            return result;
        }
    }
    class OperationSub: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;                  
            }
            return oper;
        }
    }

##

    class Program   //前台代码
    {
        static void Main(string[] args) 
        {
            Operation oper = OperationFactory.CreateOperate("+");
            oper.NumberA = 20;
            oper.NumberB = 80;
            double result = oper.GetResult();
            Console.WriteLine(result);
        }
    }

 

转载于:https://www.cnblogs.com/tinaluo/p/6908182.html

相关文章:

  • 微软将所有的Windows代码库迁移到Git
  • magento megatron主题加入中文
  • 对象不支持“abigimage”属性或方法
  • Hyper-v创建检查点(VM的快照功能)
  • dede程序打开install安装时出现dir
  • 解答《编程之美》1.18问题1:给所有未标识方块标注有地雷概率
  • 【EMC】基本概念
  • Netty断线重连
  • 不要小看了get 与set
  • redhat7.2升级openssl、openssh
  • [HAOI2016]食物链
  • 事物分析的维度
  • 调查微软恶意升级 Windows 10 请愿即将达成
  • DB-Engines 4 月份全球数据库排名,MySQL 跌幅最大
  • Cmd Markdown 发布第十四次更新 --- 使命的召唤
  • [译] 怎样写一个基础的编译器
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • CSS 专业技巧
  • JavaScript 奇技淫巧
  • javascript面向对象之创建对象
  • Rancher-k8s加速安装文档
  • React的组件模式
  • use Google search engine
  • ViewService——一种保证客户端与服务端同步的方法
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 异步
  • 如何用纯 CSS 创作一个货车 loader
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (003)SlickEdit Unity的补全
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (三) diretfbrc详解
  • (十八)SpringBoot之发送QQ邮件
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (转)shell中括号的特殊用法 linux if多条件判断
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .Net下的签名与混淆
  • @media screen 针对不同移动设备
  • [ACTF2020 新生赛]Include
  • [Asp.net MVC]Bundle合并,压缩js、css文件
  • [AutoSar]BSW_OS 02 Autosar OS_STACK
  • [BIZ] - 1.金融交易系统特点
  • [C#][opencvsharp]opencvsharp sift和surf特征点匹配
  • [CTF]2022美团CTF WEB WP
  • [C语言]一维数组二维数组的大小
  • [IDF]被改错的密码
  • [iHooya]2023年1月30日作业解析
  • [JavaWeb玩耍日记]Maven的安装与使用
  • [JS]数据类型