首先看下UML类图
public class Operation {
private double numberA;
private double numberB;
public double getNumberA() {
return numberA;
}
public double getNumberB() {
return numberB;
}
public void setNumberA(double numberA) {
this.numberA = numberA;
}
public void setNumberB(double numberB) {
this.numberB = numberB;
}
public double getResult(){return 0;}
}
public class OperationAdd extends Operation {
@Override
public double getResult(){
return super.getNumberA() + super.getNumberB();
}
}
public class OperationSub extends Operation {
@Override
public double getResult(){
return super.getNumberA() - super.getNumberB();
}
}
public class OperationMul extends Operation {
@Override
public double getResult(){
return super.getNumberA() * super.getNumberB();
}
}
public class OperationDiv extends Operation {
@Override
public double getResult(){
return super.getNumberA() / super.getNumberB();
}
}
public class OperationFactory {
public static Operation createOperate(String operate){
Operation operation = null;
switch (operate) {
case "+":
operation = new OperationAdd();
break;
case "-":
operation = new OperationSub();
break;
case "*":
operation = new OperationMul();
break;
case "/":
operation = new OperationDiv();
break;
}
return operation;
}
}
public class Test {
public static void main(String[] args) {
Operation operate = OperationFactory.createOperate("+");
operate.setNumberA(8);
operate.setNumberB(10);
double result = operate.getResult();
System.out.println("result===>"+result); //18
}
}