简单工厂模式,最简单的一种工厂模式,这里沿用了书上的例子,实现的是计算器功能,简单来说就是通过客户端输入的符号来判断具体返回哪个具体的计算实体类,从而实现计算功能。
客户端调用代码:
public class SimpleFactoryTest { public static void main(String[] args){ OperationBase operationBase= OperationFactory.createOperation("+"); operationBase.setNumber1(2); operationBase.setNumber2(5); System.out.println(operationBase.getResult()); } }
工厂类OperationFactory代码:
public class OperationFactory { public static OperationBase createOperation(String signature){ OperationBase operationBase = null; switch (signature){ case "+": operationBase=new AddOperation(); break; case "-": operationBase=new SubtractOperation(); break; case "*": operationBase=new MultiplyOperation(); break; case"/": operationBase=new DivideOperation(); break; } return operationBase; } }
抽象类OperationBase代码:
public abstract class OperationBase { double number1; double number2; public abstract double getResult(); public double getNumber1() { return number1; } public void setNumber1(double number1) { this.number1 = number1; } public double getNumber2() { return number2; } public void setNumber2(double number2) { this.number2 = number2; } }
其中一个具体实现类,AddOperation类
public class AddOperation extends OperationBase { public double getResult() { return number1+number2; } }
剩下的加减乘除方法一次类推,重写Operationbase的getResult方法,从而让每个实现类有自己的计算逻辑的具体实现。