public abstract class Operation {
private double numberA;
private double numberB;
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();
}
简单工厂类
java复制代码
public class OperationFactory {
public Operation createOperate(String operate){
if("+".equals(operate)){
return new AddOperation();
} else if("-".equals(operate)){
return new SubOperation();
}else{
return null;
}
}
}
加法运算类
java复制代码
public class AddOperation extends Operation {
@Override
public double getResult() {
return getNumberA() + getNumberB();
}
}
减法运算类
java复制代码
public class SubOperation extends Operation {
@Override
public double getResult() {
return getNumberA() - getNumberB();
}
}
测试
java复制代码
public class AppRun {
public static void main(String[] args) {
OperationFactory operationFactory = new OperationFactory();
Operation operate = operationFactory.createOperate("+");
operate.setNumberA(1.2);
operate.setNumberB(33.3);
System.out.println(operate.getResult());
}
}