简单工厂模式----计算器的实现
UML类图
代码:
Operation接口:
package Opertation_02;
/**
* @author HQ
* @date 2020/5/20 16:35
*/
public interface Operation {
double getResult(double numberA,double numberB);
}
加法实现类:
package Opertation_02;
/**
* @author HQ
* @date 2020/5/20 16:39
*/
public class OperationAddImpl implements Operation{
@Override
public double getResult(double numberA, double numberB) {
return numberA+numberB;
}
}
减法实现类:
package Opertation_02;
/**
* @author HQ
* @date 2020/5/20 16:40
*/
public class OperationSubImpl implements Operation {
@Override
public double getResult(double numberA, double numberB) {
return numberA-numberB;
}
}
乘法实现类:
package Opertation_02;
/**
* @author HQ
* @date 2020/5/20 16:41
*/
public class OperationMulImpl implements Operation {
@Override
public double getResult(double numberA, double numberB) {
return numberA* numberB;
}
}
除法实现类:
package Opertation_02;
/**
* @author HQ
* @date 2020/5/20 16:42
*/
public class OperationDivImpl implements Operation {
@Override
public double getResult(double numberA, double numberB) {
return numberA/numberB;
}
}
测试类:
package Opertation_02;
import java.util.Scanner;
/**
* 简单工厂模式--计算器
* @author HQ
* @date 2020/5/20 16:43
*/
public class OperationFactory {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数字A:");
double numberA = scanner.nextDouble();
System.out.println("请输入数字B:");
double numberB = scanner.nextDouble();
System.out.println("请输入运算符(+ - * /):");
String operation = scanner.next();
double result = 0;
switch (operation) {
case "+":
result = new OperationAddImpl().getResult(numberA, numberB);
break;
case "-":
result = new OperationSubImpl().getResult(numberA, numberB);
break;
case "*":
result = new OperationMulImpl().getResult(numberA, numberB);
break;
case "/":
result = new OperationDivImpl().getResult(numberA, numberB);
break;
}
System.out.println("结果是:"+result);
}
}
编程是一门艺术!