简单工厂
通过实现简单的计算机功能来应用简单工厂
/****************************************************************************************************** 个人理解:工厂的主要作用就是用于生产对象,之所以叫简单工厂,就是因为由客户端来发出指令,来指定所需要的对象。而这种指令是用参数来进行传递的。然后通过继承抽象类或接口,将对象的公共功能抽象出来。使其更加易于扩展。 *******************************************************************************************************/ /* 定义公共操作 */ public abstract class Operation { private double numA; private double numB; public double getNumA() { return numA; } public void setNumA(double numA) { this.numA = numA; } public double getNumB() { return numB; } public void setNumB(double numB) { this.numB = numB; } //抽象方法,所有的运算类都实现这个方法。 public abstract double getResult(); } /* 加法类 */ public class Add extends Operation{ @Override public double getResult() { return getNumA() + getNumB(); } } /* 减法类 */ public class Sub extends Operation { @Override public double getResult() { return getNumA()-getNumB(); } } /* 乘法类 */ public class Mul extends Operation { @Override public double getResult() { return getNumA()*getNumB(); } } /* 除法类 */ public class Div extends Operation { @Override public double getResult() { if(0.0 == getNumB()){ try { throw new Exception("除数不能是0!"); } catch (Exception e) { e.printStackTrace(); } return 0.0; } return getNumA()/getNumB(); } }/* 工厂类 */ public class SimpleFactory { public static Operation createOperation(String operate){ Operation oper = null; if(operate.equals("+")) oper = new Add(); if(operate.equals("-")) oper = new Sub(); if(operate.equals("*")) oper = new Mul(); if(operate.equals("/")) oper = new Div(); return oper; } } /* 客户端 */ public class OperationMain { public static void main(String[] args){ Operation oper = SimpleFactory.createOperation("+"); oper.setNumA(1.0); oper.setNumB(2.0); System.out.println(oper.getResult()); } }