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

老师做家教的网站小程序注册的账号是什么

老师做家教的网站,小程序注册的账号是什么,注册公司网站源码,wordpress页面增加目录目录 一、前言 二、简单工厂模式 1、计算器例子 2、优化后版本 3、结合面向对象进行优化#xff08;封装#xff09; 3.1、Operation运算类 3.2、客户端 4、利用面向对象三大特性#xff08;继承和多态#xff09; 4.1、Operation类 4.2、加法类 4.3、减法类 4…目录 一、前言 二、简单工厂模式 1、计算器例子 2、优化后版本 3、结合面向对象进行优化封装 3.1、Operation运算类 3.2、客户端 4、利用面向对象三大特性继承和多态 4.1、Operation类 4.2、加法类 4.3、减法类 4.4、乘法类 4.5、除法类 4.6、简单工厂 4.7、客户端 5、简单工厂模式优点 6、简单工厂模式缺点 三、总结 一、前言 简单工厂模式不属于GoF23种设计模式之一但是实际中用途广泛并且可以作为学习“工厂方法模式”以及“抽象工厂模式”的基础。在简单工厂模式中工厂类提供一个创建产品的工厂方法用于创建各种产品。客户端只需传入对应的参数利用该方法即可根据传入参数的不同返回不同的具体产品对象。 二、简单工厂模式 简单工厂模式Simple Factory Pattern定义一个工厂类它可以根据参数的不同返回不同类的实例被创建的实例通常都具有共同的父类。 因为在简单工厂模式用于创建实例的方法是静态的方法因此简单工厂模式又被称为静态工厂方法模式它属于类创建型模式。 在介绍简单工厂之前先来看一个简单的计算器小栗子。 1、计算器例子 public static void main(String[] args) {Scanner scanner new Scanner(System.in);System.out.println(请输入数字A);String A scanner.nextLine();System.out.println(请选择运算符号(、-、*、/));String B scanner.nextLine();System.out.println(请输入数字B);String C scanner.nextLine();String D ;if(B ){D String.valueOf(Double.parseDouble(A) Double.parseDouble(C));}if(B -){D String.valueOf(Double.parseDouble(A) - Double.parseDouble(C));}if(B *){D String.valueOf(Double.parseDouble(A) * Double.parseDouble(C));}if(B /){D String.valueOf(Double.parseDouble(A) / Double.parseDouble(C));}System.out.println(运算结果D); } 这段代码存在的问题 这样命名是非常不规范的。像A、B、C、D这些别人扎眼一看肯定不知道这是在做什么。判断分支这样的写法意味着每个条件都要做判断等于计算机做了三次无用功。如果除数时客户输入了0怎么办如果用户输入的是字符符号而不是数字怎么办。 2、优化后版本 public static void main(String[] args) {try {Scanner scanner new Scanner(System.in);System.out.println(请输入数字A);String numberA scanner.nextLine();System.out.println(请选择运算符号(、-、*、/));String operate scanner.nextLine();System.out.println(请输入数字B);String numberB scanner.nextLine();String result ;switch (operate ){case :result String.valueOf(Double.parseDouble(numberA) Double.parseDouble(numberB));break;case -:result String.valueOf(Double.parseDouble(numberA) - Double.parseDouble(numberB));break;case *:result String.valueOf(Double.parseDouble(numberA) * Double.parseDouble(numberB));break;case/:if (numberB ! 0){result String.valueOf(Double.parseDouble(numberA) / Double.parseDouble(numberB));}else{result 除数不能为0;}break;}System.out.println(运算结果result);}catch (Exception e){System.out.println(e);}} 可以看到这一版中优化了变量的命名将if判断更换成了switch case语句增加了除数判断是否为0。 3、结合面向对象进行优化封装 3.1、Operation运算类 public class Operation {public static String getResult(double numberA, double numberB, String operate){String result ;switch (operate){case :result String.valueOf(numberA numberB);break;case -:result String.valueOf(numberA -numberB);break;case *:result String.valueOf(numberA * numberB);break;case/:if (numberB ! 0){result String.valueOf(numberA / numberB);}else{result 除数不能为0;}break;}return result;} } 3.2、客户端 public class Program {public static void main(String[] args) {try {Scanner scanner new Scanner(System.in);System.out.println(请输入数字A);String numberA scanner.nextLine();System.out.println(请选择运算符号(、-、*、/));String operate scanner.nextLine();System.out.println(请输入数字B);String numberB scanner.nextLine();String result ;Operation.getResult(Double.parseDouble(numberA), Double.parseDouble(numberB),operate);System.out.println(运算结果result);}catch (Exception e){System.out.println(e);}} } 4、利用面向对象三大特性继承和多态 4.1、Operation类 public abstract class Operation {private double numberA;private double numberB;public double getNumberA() {return numberA;}public void setNumberA(double numberA) {this.numberA numberA;}public double getNumberB() {return numberB;}public void setNumberB(double numberB) {this.numberB numberB;}public abstract double getResult() throws Exception; } 4.2、加法类 public class OperationAdd extends Operation{Overridepublic double getResult() {return getNumberA()getNumberB();} } 4.3、减法类 public class OperationSub extends Operation{Overridepublic double getResult() {return getNumberB() - getNumberB();} } 4.4、乘法类 public class OperationMul extends Operation{Overridepublic double getResult() {return getNumberA() * getNumberB();} } 4.5、除法类 public class OperationDiv extends Operation{Overridepublic double getResult() throws Exception {if (getNumberB() ! 0){return getNumberA() / getNumberB();}throw new Exception(除数不能为0);} } 4.6、简单工厂 public class OperationFactory {public static Operation createOperate(String operate){Operation operation null;switch (operate){case :operation new OperationAdd();break;case -:operation new OperationSub();break;case *:operation new OperationMul();break;case/:operation new OperationDiv();break;}return operation;} } 4.7、客户端 public class Program {public static void main(String[] args) throws Exception {Operation operation;operation OperationFactory.createOperate();operation.setNumberA(2);operation.setNumberB(4);double result operation.getResult();System.out.println(result);} } 5、简单工厂模式优点 1、工厂类含有必要的判断逻辑可以决定在什么时候创建哪一个产品类的实例客户端可以免除直接创建产品对象的责任而仅仅“消费”产品简单工厂模式通过这种做法实现了对责任的分割它提供了专门的工厂类用于创建对象。 2、客户端无须知道所创建的具体产品类的类名只需要知道具体产品类所对应的参数即可对于一些复杂的类名通过简单工厂模式可以减少使用者的记忆量。 3、通过引入配置文件可以在不修改任何客户端代码的情况下更换和增加新的具体产品类在一定程度上提高了系统的灵活性。 6、简单工厂模式缺点 1、由于工厂类集中了所有产品创建逻辑一旦不能正常工作整个系统都要受到影响。 2、使用简单工厂模式将会增加系统中类的个数在一定程序上增加了系统的复杂度和理解难度。 3、系统扩展困难一旦添加新产品就不得不修改工厂逻辑在产品类型较多时有可能造成工厂逻辑过于复杂不利于系统的扩展和维护。 4、简单工厂模式由于使用了静态工厂方法造成工厂角色无法形成基于继承的等级结构。 三、总结 使用了简单工厂之后如果有一天我们需要更改假发运算只需要更改OperationAdd就可以了如果需要增加各种复杂运算例如平方根、自然对数、正弦等需要增加相应的运算子类修改运算类工厂在switch中增加分支来看一下简单工厂的类结构。
http://www.hkea.cn/news/14360320/

相关文章:

  • 手机网站建设软件有哪些济南建站哪家好
  • 网站运营 广告爱网站在线观看视频
  • 社交网站 源码网站建设 dw 时间轴
  • 网站你懂我意思正能量晚上在线观看不用下载免费魅族网站建设全部教程
  • 易县网站建设中国工程建筑网
  • 分享类网站源码网站开发怎样手机号验证
  • 电子商务网站建设分析和总结cms开源系统php
  • 坪地网站建设基本流程安庆做网站网站代理
  • 无为县住房建设局网站北京性价比网站建设
  • 西安信誉好的做网站的提供做网站公司有哪些
  • 公司网站开发 中山大神自己做的下载音乐的网站
  • 网站建设吉金手指排名15简网app工场体验
  • 汕头网站推广优化网站前端建设需要学会什么
  • 有什么做兼职的好网站网站建设报价选兴田德润
  • 合肥网站建设技术支持ui图标素材网站
  • 网站建设运营推广开发网站网络公司排行
  • 网站开发后台注意事项gif在线制作生成器
  • 低成本门户网站开发网站建设与管理维护书籍
  • 做电影网站有风险吗免费的网站开发工具
  • 手机做网站知乎绵阳网站seo
  • 扬州做网站公司有哪些深圳做网站最好的公司
  • 建设工程质量监督网站wordpress图片缩略图
  • 高效网站推广设计个人简历模板完整版
  • 购物网站制作样例专注新乡网站建设
  • psd做模板下载网站外贸网站注册
  • 北京网站建设公司艺唯思青岛企业展厅设计公司
  • 编程猫少儿编程网站珠海做网站哪家好
  • 网站开发制作的流程有哪些wordpress本地网站上传
  • 青海响应式网站建设网站搭建服务器
  • 自助建站工具软件邵阳县网站建设公司沙河网站建设公司