简单工厂模式
来源:互联网 发布:桌面快捷方式软件 编辑:程序博客网 时间:2024/05/22 13:19
简单工厂模式(Factory Method):定义一个用于创建对象的接口,让子类决定将哪一个类实例化。Factory Method使一个类的实例化延迟到其子类。
package gof23;public class SimpleFactoryTest {public static void main(String[] args) {Operation oper = null;oper = OperationFactory.createOperate("+");oper.numA = 2;oper.numB = 0;System.out.println(oper.getResult());oper = OperationFactory.createOperate("-");oper.numA = 2;oper.numB = 0;System.out.println(oper.getResult());oper = OperationFactory.createOperate("*");oper.numA = 2;oper.numB = 0;System.out.println(oper.getResult());oper = OperationFactory.createOperate("/");oper.numA = 2;oper.numB = 0;System.out.println(oper.getResult());}}class OperationFactory {public static Operation createOperate(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;}}class Operation {protected double numA = 0;protected double numB = 0;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 result = 0;return result;}}/* * 加法 */class OperationAdd extends Operation{@Overridepublic double getResult() {double result = 0;result = numA + numB;return result;}}/* * 减法 */class OperationSub extends Operation{@Overridepublic double getResult() {double result = 0;result = numA - numB;return result;}}/* * 乘法 */class OperationMul extends Operation{@Overridepublic double getResult() {double result = 0;result = numA * numB;return result;}}/* * 除法 */class OperationDiv extends Operation{//注意除数不能为0@Overridepublic double getResult() {double result = 0;if(Math.abs(numB - 0.0) < 0.00000001) {System.out.println("除数不能为0");return -1;}result = numA / numB;return result;}}
运行结果:
2.02.00.0除数不能为0-1.0
0 0
- 工厂模式-简单工厂
- 工厂模式-简单工厂
- 工厂模式-简单工厂模式
- 工厂模式-简单工厂模式
- 简单工厂模式,工厂模式
- 工厂模式-简单工厂模式
- 简单工厂模式,工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂&工厂模式&抽象工厂模式
- 简单工厂和工厂模式
- 简单工厂和工厂模式
- 1,工厂模式--简单工厂
- 简单工厂和工厂模式
- 简单工厂,工厂模式,抽象工厂
- 简单工厂,工厂模式,抽象工厂
- 简单工厂、工厂方法、抽象工厂模式
- 简单工厂、工厂模式和抽象工厂
- asp.net清除textbox框的自动输入功能(缓存)
- git command
- 在Xcode中使用Git进行源码版本控制
- 【OpenCV入门教程之五】 分离颜色通道&多通道图像混合
- VS快捷键教程
- 简单工厂模式
- 类型百度的输入框自动输入功能
- csharp: Converting chinese character to Unicode
- IOS绘图详解
- 编译原理手记06-语法树
- 娓娓道来c指针 (3)指针和数组
- csharp: Converting chinese character to Unicode
- COCO-Android开发框架发布
- 文件下载精要部分