1. Operation interface
public interface Operation { public double getResult(double NumberA , double NumberB); }
2. Addition, subtraction, multiplication and division
public class OperationAdd implements Operation { @Override public double getResult(double NumberA, double NumberB) { return NumberA + NumberB; } } public class OperationSub implements Operation { @Override public double getResult(double NumberA, double NumberB) { return NumberA - NumberB; } } public class OperationMul implements Operation { @Override public double getResult(double NumberA, double NumberB) { return NumberA * NumberB; } } public class OperationDiv implements Operation { @Override public double getResult(double NumberA, double NumberB) { if(NumberB==0) try { throw new Exception("Divisor cannot be 0"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace (); } return NumberA / NumberB; } }
3. Simple operation factory class
public class OperationFactory { public static Operation createOperate(String 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; } }
4. Test class
public class test { public static void main(String[] args){ Operation oper; oper = OperationFactory.createOperate("+"); System.out.println(oper.getResult(1, 2)); } }