工厂模式最初代码
package gongchangmoshi;
import java.util.Scanner;
import java.util.Scanner;
abstract class Operation{
private double numberA=0;
private double numberB=0;
boolean flag=true;
public double getNumberA(){
return numberA;
}
public void setNumberA(double numberA)
{
this.numberA=numberA;
}
public double getNumberB() {
return numberB;
}
public void setNumberB(double numberB)
{
this.numberB=numberB;
}
public abstract double getResult();
}
class OperationAdd extends Operation{
public double getResult()
{
double result=0;
return getNumberA()+getNumberB();
}
}
class OperationSub extends Operation{
public double getResult()
{
double result=0;
return getNumberA()-getNumberB();
}
}
class OperationMul extends Operation{
public double getResult()
{
double result=0;
return getNumberA()*getNumberB();
}
}
class OperationDiv extends Operation{
public double getResult()
{
double result=0;
return getNumberA()/getNumberB ();
}
}
class OperationFactory{
public static Operation createOperate(char 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;
}
}
public class gongchangmoshi{
public static void main(String[]args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入数字A:");
String strNumberA=scanner.nextLine();
System.out.println("请选择运算符号(+,-,*,/");
String strOperator=scanner.nextLine();
System.out.println("请输入数字B:");
String strNumberB=scanner.nextLine();
Operation oper;
oper=OperationFactory.createOperate(strOperator.charAt(0));
oper.setNumberA(Double.parseDouble(strNumberA));
oper.setNumberB(Double.parseDouble(strNumberB));
System.out.println("结果是:"+oper.getResult());
}
}