使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程序实现。
Operation.java
package dpj01;
public interface Operation {
double getResult(double num1,double num2);
}
OperationFactory.java
package dpj01;
public class OperationFactory{
public static Operation getOperation(String o) {
Operation operation=null;//多态
switch(o) {
case "+":
operation=new Addition();
break;
case "-":
operation=new Minus();
break;
case "*":
operation=new Multiplication();
break;
case "/":
operation=new Division();
break;
}
return operation;
}
}
Addition.java
package dpj01;
public class Addition implements Operation{//加法
@Override
public double getResult(double num1,double num2) {
return num1+num2;
}
}
Division.java
package dpj01;
public class Division implements Operation{//除法
@Override
public double getResult(double num1,double num2) {
return num1/num2;
}
}
Minus.java
package dpj01;
public class Minus implements Operation{//减法
@Override
public double getResult(double num1,double num2) {
return num1-num2;
}
}
Multiplication.java
package dpj01;
public class Multiplication implements Operation{//乘法
@Override
public double getResult(double num1,double num2) {
return num1*num2;
}
}
FactoryTest.java
package dpj01;
import java.util.Scanner;
public class FactoryTest {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner scanner=new Scanner(System.in);
System.out.println("请输入第一个数字:");
double num1 = scanner.nextDouble();
System.out.println("请输入运算符:");
String operation = scanner.next();
System.out.println("请输入第二个数字:");
double num2 = scanner.nextDouble();
//创建运算的实例对象
Operation o = OperationFactory.getOperation(operation);
System.out.println("结果为:");
System.out.println(o.getResult(num1, num2));
}
}