一、工厂模式在开发中的运用
面试题:写一个简单的计算器
代码实现:
(1)、创建MainClass
package com.renxin.factory;
import java.util.Scanner;
public class MainClass {
public static void main(String[] args) {
//第一步:接受控制台输入的参数
System.out.println("-----计算器程序-----");
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个数:");
String strNum1 = scanner.nextLine();
System.out.println("请输入运算符:");
String oper = scanner.nextLine();
System.out.println("请输入第二个数:");
String strNum2 = scanner.nextLine();
//第二步:进行运算
double result = 0;
if("+".equals(oper)) {
result = Double.parseDouble(strNum1) + Double.parseDouble(strNum2);
}else if("-".equals(oper)) {
result = Double.parseDouble(strNum1) - Double.parseDouble(strNum2);
}else if("*".equals(oper)) {
result = Double.parseDouble(strNum1) * Double.parseDouble(strNum2);
}else if("/".equals(oper)) {
result = Double.parseDouble(strNum1) / Double.parseDouble(strNum2);
}
//返回结果
System.out.println(strNum1+oper+strNum2+"="+result);
}
}
控制台输出结果为:
请输入第一个数:
10
请输入运算符:
/
请输入第二个数:
2
10/2=5.0
上面代码存在缺点:完全面向过程设计,缺少代码复用
改进以上代码:
(1)、创建抽象类Operation
package com.renxin.factory;
public abstract class Operation {
private double num1;
private double num2;