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

广州一起做网店属于什么网站网站关键字排名怎么做

广州一起做网店属于什么网站,网站关键字排名怎么做,有的网站打不开是什么原因,网站被百度收录很重要目录 一、前言 二、简单工厂模式 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.sadfv.cn/news/244299/

相关文章:

  • 湖北手机网站建设怎样建立一个主题网站
  • 湛江建设培训学校网站建设额度哪里看
  • 软文新闻发布网站流行的网站开发技术
  • 服务器建设一个自己的网站wordpress api 中文文档
  • 工信部 网站 备案网站栏目定位
  • 河北网站seo优化室内装修工人培训班
  • 专业企业网站开发联系电话定制型网站制作明细报价表
  • 网站的域名和空间wordpress 文章标题样式
  • 网站建设与运营课程总结沈阳网站建设024w
  • 家用电脑如何做网站服务器互展科技网站建设
  • 网站的首页怎么做的ps教程自学网官网
  • 慕枫网站建设中国十大上市装修公司
  • 德阳网站建设推广园林景观中企动力提供网站建设
  • 做网站的空间和服务器jsp网站建设教程
  • 企业还做网站吗wordpress更改图片链接
  • 企业网站框架图小程序是怎么开发的
  • 工程建设标准网官方网站沙市网站建设
  • 网站建设圣诞素材淘宝客怎么样做自己的网站
  • 集宁建设局网站专门做水果的网站
  • 建立网站的软件祁阳网页定制
  • asp 网站源码怎样做团购网站
  • 企业网站排名软件度智能优化品牌网站建设蔻大蝌蚪
  • 个人可以建设网站吗不备案jsp制作网站
  • ps如何做网站tinypng图片压缩网站
  • 上海网站开发公司网站栏目是什么
  • 搭建一个商城网站上海做原创网站
  • 百度网盘做网站可信赖的网站建设案例
  • 陶瓷马赛克 网站建设 中企动力优秀手机网站设计
  • wordpress插件整站搬家网站seo顾问
  • 做网站要什么功能现在做什么行业前景好