包小盒设计网站wordpress手机版主题无效

news/2025/9/24 7:33:35/文章来源:
包小盒设计网站,wordpress手机版主题无效,个人免费注册公司网站,网站建设新手教程简单工厂模式描述的是#xff0c;通过类的继承关系#xff0c;父类#xff08;工厂类#xff09;与子类#xff08;产品类#xff09;#xff0c;调用父类中的方法#xff0c;实际干活儿的是子类中的方法#xff1b;封装需求的不确定性#xff0c;做出通用的编程通过类的继承关系父类工厂类与子类产品类调用父类中的方法实际干活儿的是子类中的方法封装需求的不确定性做出通用的编程下面以常用的计算器为例 最容易想到的写法是 1 Console.WriteLine(请输入操作数1);2 double a double.Parse(Console.ReadLine());3 Console.WriteLine(请输入操作符);4 string opt Console.ReadLine();5 Console.WriteLine(请输入操作数2);6 double b double.Parse(Console.ReadLine());7 8 double result 0;9 10 switch (opt) 11 { 12 case : 13 result a b; 14 break; 15 case -: 16 result a - b; 17 break; 18 case *: 19 result a * b; 20 break; 21 case /: 22 if (b 0) 23 { 24 throw new Exception(被除数不能为0); 25 } 26 result a / b; 27 break; 28 } 29 Console.WriteLine(计算结果是result); 这么写对于控制台来说基本够用了但是它有很多的弊病 1.计算结果是直接输出到控制台如果要做一个WinForm版呢目前只有重新写一遍不能够重用 2.这里的case只考虑了基本的四则运算业务变更后如果有求平方、求立方、开方等运算呢那么只能去改写好的方法一个项目中只有一处还好说如果有多处要修改那就麻烦了可扩展性太差3.这段代码也没有体现面向对象的3大特性封装、继承、多态。 基于以上的种种弊端需要修改代码 首先定义一个父类Operat在类中不考虑未来是否有四则运算及怎样运算 Operat类 1 /// summary2 /// 父类计算方法3 /// /summary4 public class Operat5 {6 public double NumberA { get; set; }7 public double NumberB { get; set; }8 /// summary9 /// 构造函数 10 /// /summary 11 /// param namea/param 12 /// param nameb/param 13 public Operat(double a,double b) 14 { 15 this.NumberA a; 16 this.NumberB b; 17 } 18 19 public virtual double Oper() 20 { 21 double result 0; 22 return result; 23 } 24 } 只定义了2个操作数和一个计算方法虚方法因为这里不知道未来有几个运算 再定义一个加法类OperatAdd来继承它并实现父类中的计算方法 OperatAdd类加法 1 class OperatAdd : Operat2 {3 //构造函数4 public OperatAdd(double a,double b):base(a,b)5 {6 7 }8 /// summary9 /// 子类重写父类的Oper方法实现 10 /// /summary 11 /// returns/returns 12 public override double Oper() 13 { 14 double result 0; 15 result NumberA NumberB; 16 return result; 17 } 18 } 依次定义后面的3个类减、乘、除 OperatSub类减法 1 class OperatSub : Operat2 {3 public OperatSub(double a,double b):base(a,b)4 {5 6 }7 public override double Oper()8 {9 double result 0; 10 result NumberA - NumberB; 11 return result; 12 } 13 } OperatMult类乘法 1 class OperatMult:Operat2 {3 public OperatMult(double a,double b):base(a,b)4 {5 6 }7 public override double Oper()8 {9 double result 0; 10 result NumberA * NumberB; 11 return result; 12 } 13 } OperatVision类除法 1 class OperatVision:Operat2 {3 public OperatVision(double a,double b):base(a,b)4 {5 6 }7 public override double Oper()8 {9 double result 0; 10 if (NumberB0) 11 { 12 throw new Exception(被除数不能为0); 13 } 14 result NumberA / NumberB; 15 return result; 16 } 17 } 这时候应该考虑的问题是在业务中怎样调用这4个子类中的运算方法简单工厂 定义一个工厂类由工厂类根据具体业务去调用具体的子类产品类 1 /// summary2 /// 工厂类3 /// /summary4 public class OperatFactory5 {6 public Operat JiSuan(double a, string opt, double b)7 {8 Operat opt1 null;9 //封装了异同业务需求的差异 10 switch (opt) 11 { 12 case : 13 opt1 new OperatAdd(a, b); //产品1加法 14 break; 15 case -: 16 opt1 new OperatSub(a, b); //产品2减法 17 break; 18 case *: 19 opt1 new OperatMult(a, b); //产品3乘法 20 break; 21 case /: 22 opt1 new OperatVision(a, b); //产品4除法 23 break; 24 } 25 return opt1; //返回父类对象 26 } 27 } 给opt赋不同的运算工厂类就会去调用相应的子类执行计算方法new出相应的产品类因为子类中都只是 return result;没有考虑这个结果具体显示在那个地方控制台还是winform中的label就变得相当灵活了并返回父类对象。 控制台去使用时调用工厂类中JiSuan方法返回父类对象即可 1 Console.WriteLine(请输入操作数1);2 double a double.Parse(Console.ReadLine());3 Console.WriteLine(请输入操作符);4 string opt Console.ReadLine();5 Console.WriteLine(请输入操作数2);6 double b double.Parse(Console.ReadLine());7 8 OperatFactory factory new OperatFactory();9 Operat opt1 factory.JiSuan(a, opt, b); 10 Console.WriteLine(计算结果是{0}, opt1.Oper()); 11 Console.ReadKey(); 而winform的代码也很类似 1 lbResult.Text ;2 3 lbResult.ForeColor Color.Red;4 lbResult.Font new Font(宋体, 12);5 double a double.Parse(txtNumber1.Text.Trim());6 string opt cmbOperat.SelectedItem.ToString();7 double b double.Parse(txtNumber2.Text.Trim());8 9 OperatFactory factory new OperatFactory(); 10 Operat oper factory.JiSuan(a, opt, b); 11 lbResult.Text oper.Oper().ToString(); 可以看出上面2段代码的第二段几乎是一样的代码就足够通用了。      转载于:https://www.cnblogs.com/chens2865/p/3732071.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915213.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

德阳网站建设优化阳朔到桂林北

2558. 从数量最多的堆取走礼物 原题地址: 力扣每日一题:从数量最多的堆取走礼物 给你一个整数数组 gifts ,表示各堆礼物的数量。每一秒,你需要执行以下操作: 选择礼物数量最多的那一堆。 如果不止一堆都符合礼物数量最…

开网站做代销好网站根目录 本地共享

jarsigner, keytool 这2个都是JDK的内置工具,在JDK的bin目录中可以找到, 下面是使用jarsigner给jar文件签名的5个步骤: 1. 使用java的jar工具创建JAR文件; # 将当前文件夹下的所有文件打包到myapp-1.0.jar文件中 后面的*为通配符, 也可以指定需要打包的jar中的文件或者文件夹…

苏州网站开发外包公司免费ppt模板下载公众号

应用场景 上一篇《Spring Cloud Stream消费失败后的处理策略(一):自动重试》介绍了默认就会生效的消息重试功能。对于一些因环境原因、网络抖动等不稳定因素引发的问题可以起到比较好的作用。但是对于诸如代码本身存在的逻辑错误等&#xff…

做网站公司哪家正规古楼角网站建设

2019独角兽企业重金招聘Python工程师标准>>> 由于最近用阿里云日志服务整合log4j,在配置com.aliyun.openservices.log.log4j.LoghubAppender需要设置一些参数,因为项目中有统一的配置文件,所以想要可以直接在log4j.xml中通过${}来…

2025年国家科技奖初评公布(科技发明奖)

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087 添加图片注释,不超过 140 字(可选) 添加图片注释,不超过 140 …

做网站的收入上海平台网站建设

SQL Server横向扩展方案-SODA每次在提到SQL Server扩展性问题的时候,似乎很多的SQL Server DBA或者使用微软技术开发的朋友心里总是一整痛:SQL Server只能纵向的扩展(Scaling-Up),无法横向的扩展(Scaling-Out)。每次有人提到Oracle和SQL Serv…

wordpress替代广州网站优化公司

对于前端来说,2023 是非同寻常的一年。我们见证了争相抢占甚至是发明服务器端渲染(SSR)市场的热潮、AI 的不断进步、Web 渲染器和 JS 引擎的寒武纪大爆发、一大批有力的竞争者试图摧毁巨头的统治地位…… 在开始预测未来一年发展趋势之前&am…

推荐系统网站开发徐州做网站企业

本次以多台机器需部署zabbix客户端为例: 机器先做免密互信,ansible主机上执行ssh-keygen,一路回车,然后将公钥发送给需管理的主机: ssh-copy-id rootIP 1、编辑hosts文件,添加需配置的主机IP,并测试连通…

最好的自助建站系统wordpress forest

在上一节中,我们简单讲述了数据库和SQL的基本概念。 本节我们讲述一下环境搭建,为下一节讲表的基本操作做下铺垫。 环境搭建 具体到操作,我们就要准备一些环境了。如果不进行练习,我们学习的知识将很快被遗忘。 MySQL安装&…

大岭山镇仿做网站廊坊网站建设-纵横网络+网站

海龟编辑器是一款专为广大少儿打造的Python编辑器,该软件功能强大且使用便利,可以帮助孩子们以搭积木的方式来学习Python,并且支持Python代码和图形化积木的双向互相转译,不但可以有效提升孩子的学习兴趣,而且还能够降…

局网站建设招标深圳网站建设 卓

多Transformer的双向编码器表示法 Bidirectional Encoder Representations from Transformers,即Bert; 第二部分 探索BERT变体 从本章开始的诸多内容,以理解为目标,着重关注对音频相关的支持(如果有的话)…

html5手机app网站模板免费下载网络网页制作

我们在开发中经常会用到一些指定区域进行打印机打印,但是使用常规方式打印会将全部页面打印,当然相同都为打印,但是打印出来的内容并不是我们需要的东西,进行给大家分享如何设置打印机指定区域进行打印;该标签中的内容…

网站 编程语言建站论坛

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 主键约束可以看成是非空约束再加上唯一约束 也就是说设置为主键列,不能为空,不能重复 像一般用户编号是不可能重复的,也不可能为空的 …

网站备备份教程上海集锦信息科技有限公司

目录 概述 1 STM32H750 HSE时钟介绍 2 使用STM32Cube创建Project 3 认识HSE时钟 3.1 HSE时钟的特性 3.2 HSE的典型应用电路 4 STM32Cube中配置时钟 4.1 时钟需求 4.2 配置参数 4.2.1 使能外围资源 4.2.2 使用STM32Cube注意项 4.2.3 配置参数 5 总结 概述 本文主要…

九江市建设规划局旧网站网站优化+山东

来源:集智俱乐部 作者:斯蒂芬沃尔夫勒姆 数学家、物理学家、计算机科学家导语:圣塔菲研究所被誉为复杂性科学的圣地,被称为“没有围墙的研究所”,那么它是如何创建发展起来的呢?2019 年,为了纪…

网站首页优化的目的wordpress旧文章更新

概述 当用户打开、切换和返回到对应应用时,应用中的UIAbility实例会在其生命周期的不同状态之间转换。UIAbility类提供了一系列回调,通过这些回调可以知道当前UIAbility实例的某个状态发生改变,会经过UIAbility实例的创建和销毁,…

周至县做网站上海企业建站推荐

使用数据库的时候,我们可以用JDBC来实现mysql数据库与java程序之间的通信,为了提高通信效率,我们有了数据库连接池比如druid等等。而我们想通过Java程序控制redis,同样可以借助一些工具来实现,这就是redis客户端&#…

汕头网站建设推广方法WordPress多功能新闻积分商城主题

ylbtech-Vue.js:路由1.返回顶部 1、Vue.js 路由 本章节我们将为大家介绍 Vue.js 路由。 Vue.js 路由允许我们通过不同的 URL 访问不同的内容。 通过 Vue.js 可以实现多视图的单页Web应用(single page web application,SPA)。 Vue.…

网站模板素材青海网站建设有哪些

随着公司的发展和市场竞争的影响,越来越多的创业者希望注册一家好名称的公司,以提高企业知名度和竞争力。但是,注册中字头无地域公司需要满足一定的条件和流程。本文将对中字头无地域公司注册条件及流程进行详细的介绍。可以致电咨询我或者来…

昆明网站的优化免费开网店的app

组件的自定义事件 一种组件间通讯的方式&#xff0c;适用于&#xff1a;子组件 —> 父组件 绑定自定义事件 第一种方式:在父组件中写单标签1.<Demo 事件名"方法">2.<Demo v-on:事件名"方法"/>第二种方式:使用ref绑定(配置在生命周期中)this…