简单运算工厂
来源:互联网 发布:国内做云计算的公司 编辑:程序博客网 时间:2024/05/16 18:56
封装:将加减乘除分别封装为单独的类
继承:加减乘除都继承Operation(运算类)
多态:加减乘除都重写Operation(运算类)的方法
package com.design.utils;import org.junit.Test;public class TestFactory {/* * 运算类 */class Operation {protected double numA;protected double numB;public double getNumA() {return numA;}public void setNumA(double numA) {this.numA = numA;}public double getNumB() {return numB;}public void setNumB(double numB) {this.numB = numB;}public double GetResult(){double res = 0;return res;}}/* * 加 */class OperationAdd extends Operation {public double GetResult(){double res = super.numA + super.numB;return res;}}/* * 减 */class OperationSub extends Operation {public double GetResult(){double res = super.numA - super.numB;return res;}}/* * 乘 */class OperationMul extends Operation {public double GetResult(){double res = super.numA * super.numB;return res;}}/* * 除 */class OperationDiv extends Operation {public double GetResult(){double res = 0;try {res = super.numA / super.numB;} catch (Exception e) {throw e;}return res;}}/* * 简单运算工厂 */class OperationFactory {public Operation createOperation (String operate){Operation oper = null;switch (operate) {case "+":oper = new OperationAdd();break;case "-":oper = new OperationSub();break;case "*":oper = new OperationMul();break;case "/":oper = new OperationDiv();break;}return oper;}}/* * 测试 */@Testpublic void testOperFactory(){OperationFactory opfa = new OperationFactory();Operation oper = opfa.createOperation("+");oper.numA = 2;oper.numB = 3;System.out.println("运算结果为:" + oper.GetResult());}}
注:此处没有处理精度问题关于精度的问题请看 精度计算
如要查看结合反射机制的简单工厂模式请查看 : http://blog.csdn.net/fateforever/article/details/78401166
阅读全文
0 0
- 简单运算工厂
- 简单工厂,工厂,抽象工厂
- 简单工厂、工厂、抽象工厂
- 简单工厂、工厂、抽象工厂
- 工厂模式-简单工厂
- 简单工厂 静态工厂
- 工厂模式-简单工厂
- 工厂 > 简单工厂
- 简单工厂,工厂方法
- 简单工厂
- 简单工厂
- 简单工厂
- 简单工厂
- 简单工厂
- 简单工厂
- 简单工厂
- 简单工厂
- 简单工厂
- H-Index
- BZOJ 2763 [JLOI2011]飞行路线
- gitlab-runner-maven卡死的情况
- 【Spring】 (5)根据机器环境不同运行不同代码
- 文件上传漏洞(绕过姿势) 转载防丢失
- 简单运算工厂
- 使用CSS伪元素模拟float:center效果
- 跨域
- Hyperledger Fabric SDK 示例fabric-samples-《balance-transfer》之四《安装chaincode》
- 可能是Android最简单的欢迎页面实现
- zabbix通过snmp监控带外管理ping不可用的问题
- 3、认识目标客户:6个角度与2步阶梯
- 创建web项目
- vue2计算属性、方法、及侦听笔记