public abstract class Operation {
private Integer numberA = 0;
private Integer numberB = 0;
public abstract double getResult();
public Integer getNumberA() {
return numberA;
}
public void setNumberA(Integer numberA) {
this.numberA = numberA;
}
public Integer getNumberB() {
return numberB;
}
public void setNumberB(Integer numberB) {
this.numberB = numberB;
}
}
public class OperationAdd extends Operation {
@Override
public double getResult(){
return getNumberA() + getNumberB();
}
}
public class OperationSub extends Operation {
@Override
public double getResult(){
return getNumberA() - getNumberB();
}
}
public class OperationFactory {
public static Operation createOperation(String operate){
Operation oper = null;
if("+".equals(operate)){
oper = new OperationAdd();
}
if("-".equals(operate)){
oper = new OperationSub();
}
return oper;
}
}
public class Client {
public static void main(String[] args){
Operation oper;
oper = OperationFactory.createOperation("+");
oper.setNumberA(1);
oper.setNumberB(2);
double result = oper.getResult();
System.out.println(result);
}
}