/** * */ package com.handy.dp.sf; /** * @author handy * */ public abstract class Operation { private int numberA; private int numberB; /** * @return the numberA */ public int getNumberA() { return numberA; } /** * @param numberA * the numberA to set */ public void setNumberA(int numberA) { this.numberA = numberA; } /** * @return the numberB */ public int getNumberB() { return numberB; } /** * @param numberB * the numberB to set */ public void setNumberB(int numberB) { this.numberB = numberB; } public abstract int getRusult(); }
/** * */ package com.handy.dp.sf; /** * @author handy * */ public class OperationFactory { Operation oper; public OperationFactory(char operator) { int operatorInt = operator; switch (operatorInt) { case 43: oper = new OperationAdd(); break; case 45: oper = new OperationSub(); break; case 42: oper = new OperationMul(); break; case 47: oper = new OperationDiv(); break; } } }
/** * */ package com.handy.dp.sf; /** * @author handy * */ public class OperationAdd extends Operation { @Override public int getRusult() { // TODO Auto-generated method stub return getNumberA()+getNumberB(); } }
/** * */ package com.handy.dp.sf; /** * @author handy * */ public class OperationSub extends Operation{ @Override public int getRusult() { // TODO Auto-generated method stub return getNumberA()-getNumberB(); } }
/** * */ package com.handy.dp.sf; /** * @author handy * */ public class TestSimpleFactory { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub OperationFactory of1 = new OperationFactory('+'); of1.oper.setNumberA(18); of1.oper.setNumberB(3); System.out.println(of1.oper.getRusult()); OperationFactory of2 = new OperationFactory('-'); of2.oper.setNumberA(18); of2.oper.setNumberB(3); System.out.println(of2.oper.getRusult()); } }