java简单工厂设计模式实现计算器

来源:互联网 发布:在职研究生知乎 编辑:程序博客网 时间:2024/05/21 15:44

本文使用java的简单工厂设计模式实现简单计算器。

一、项目工程如下:


二、Operation类是计算器的父类:

package 计算器;/** * 计算器的父类 * @author Administrator * */public abstract class Operation {private double x;private double y;public abstract double getResult();public double getX() {return x;}public void setX(double x) {this.x = x;}public double getY() {return y;}public void setY(double y) {this.y = y;}}
三、Add类:

package 计算器;/** * 加 * @author Administrator * */public class Add extends Operation{@Overridepublic double getResult() {return getX()+getY();}}
四、Sub:
package 计算器;/** * 减 * @author Administrator * */public class Sub extends Operation{@Overridepublic double getResult() {return getX()-getY();}}
五、Mul
package 计算器;/** * 乘 * @author Administrator * */public class Mul extends Operation{@Overridepublic double getResult() {return getX()*getY();}}
六、Div
package 计算器;/** * 除 * @author Administrator * */public class Div extends Operation{@Overridepublic double getResult() {if (getY()==0) {System.out.println("除数不能为0");return -1;}else{return getX()/getY();}}}
七、工厂类:

package 计算器;public class OptionerFactory {public static Operation creatOperation(String oper){Operation operation=null;switch (oper) {case "+":operation=new Add();break;case "-":operation=new Sub();break;case "*":operation=new Mul();break;case "/":operation=new Div();break;}return operation;}}
八、测试类:

package 计算器;import java.util.Scanner;public class TestMain {public static void main(String[] args) {@SuppressWarnings("resource")Scanner scanner=new Scanner(System.in);System.out.println("输入第一个数");double x=scanner.nextInt();System.out.println("输入操作符");String oper=scanner.next();System.out.println("输入第二个数");double y=scanner.nextInt();Operation operation = OptionerFactory.creatOperation(oper);operation.setX(x);operation.setY(y);double result = operation.getResult();System.out.println("结果:"+result);}}





阅读全文
2 0