大话设计模式之简单工厂模式---------计算器
来源:互联网 发布:手机移动网络开关在哪 编辑:程序博客网 时间:2024/06/08 06:05
Operation类 计算的父类 提供输入的计算参数和获取结果的方法,用于被子类具体计算方法继承
package com.dahua.caculator;/** * Created by walle * 2017/10/11.14:46 * good good study! */public 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 double getResult() { double result = 0; return result; }}子类加法计算类
package com.dahua.caculator;/** * Created by walle * 2017/10/11.14:50 * good good study! */public class OperationAdd extends Operation { @Override public double getResult() { double result = 0; result = getNumberA()+getNumberB(); return result; }}子类除法计算类工厂类 根据提供的运算符决定调用哪个计算类/** * Created by walle * 2017/10/11.15:26 * good good study! */public class OperationDiv extends Operation { @Override public double getResult() { double result =0; if(getNumberB()==0){ throw new RuntimeException("除数不能为0"); } result = getNumberA()/getNumberB(); return result; }}其他计算类自己写吧
package com.dahua.caculator;/** * Created by walle * 2017/10/11.14:52 * good good study! */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 OperationDiv(); break; } return operation; }}
运行计算的方法
import java.util.Scanner;/** * Created by walle * 2017/10/11.15:00 * good good study! */public class Caculator { public static void main(String[] args) { Operation operation; Scanner scanner = new Scanner(System.in); String operate = scanner.next(); System.out.println("您输入的运算符是:"+operate); operation = OperationFactory.createOperate(operate); Double numberA = scanner.nextDouble(); System.out.println("您输入的第一个数字是:"+numberA); Double numberB = scanner.nextDouble(); System.out.println("您输入的第二个数字是:"+numberB); operation.setNumberA(numberA); operation.setNumberB(numberB); double result = operation.getResult(); System.out.println("输出结果是:"+result); }}如果后续需要其他的运算方法只需要写一个运算类继承Operation类,并且在工厂类中加入switch分支就行了。
阅读全文
1 0
- 大话设计模式之简单工厂模式---------计算器
- 大话设计模式之简单工厂模式
- 大话设计模式之简单工厂模式
- 大话设计模式之简单工厂模式
- 大话设计模式之简单工厂模式
- 大话设计模式之--简单工厂模式
- 大话设计模式之简单工厂模式
- 《大话设计模式》之简单工厂模式
- 大话设计模式 工厂模式 C++计算器
- 大话设计模式学习笔记--简易计算器(简单工厂)
- 大话设计之简单工厂模式
- 大话设计模式读书笔记之简单工厂
- 大话设计模式之简单工厂模式、抽象工厂模式及工厂方法模式的比较
- 大话设计模式之简单工厂模式&工厂方法模式&抽象工厂模式
- 大话设计模式之简单工厂模式、抽象工厂模式及工厂方法模式的比较
- 大话设计模式之C++实现---简单工厂模式
- 大话设计模式学习之简单工厂模式
- 大话设计模式之简单工厂模式代码
- Android 自定义画圆控件,非常酷炫
- Apache common-lang: ArrayUtils
- js 时间相关的一些函数
- 配置底盘机器人与笔记本通讯中遇到的问题
- 【Oracle】SQL/92 执行多个表的连接
- 大话设计模式之简单工厂模式---------计算器
- struts2 <s:select> 默认选中多项
- css3渐变色输入框
- jmeter使用前配置
- VNC遇到无法kill时的解决方法
- 【该了解】逾期征信常识
- stm32 加入 USE_STDPERIPH_DRIVER、STM32F10X_HD的原因
- A Guide to Rolling File Appenders
- FizzBuzzWhizz Thoughtworks笔试题