- Factory:工厂类,简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。
- IProduct:抽象产品类,简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。
- Product:具体产品类,是简单工厂模式的创建目标。
工厂类:创建运算
抽象产品类:两个数之间的运算以及得到的结果
具体产品类:加减乘除四则运算
Java源码:
public class OperationFactory {
public static Operation createOperate(String operate) {
Operation operation = null;
switch (operate) {
case "+":
operation = new OperationAdd();
break;
case "-":
operation = new OperationSub();
break;
case "*":
operation = new OperationMul();
break;
case "/":
operation = new OperationDiv();
break;
}
return operation;
}
}
public abstract class Operation {
private double numberA;
private double numberB;
public double getNumberA() {
return numberA;
}
public void setNumberA(double numberA) {
this.numberA = numberA;
}
public double getNumberB() {
return numberB;
}
public void setNumberB(double numberB) {
this.numberB = numberB;
}
public abstract double GetResult() throws Exception;
}
public class OperationAdd extends Operation {
@Override
public double GetResult() {
return getNumberA() + getNumberB();
}
}
public class OperationSub extends Operation {
@Override
public double GetResult() throws Exception {
return getNumberA() - getNumberB();
}
}
public class OperationMul extends Operation {
@Override
public double GetResult() throws Exception {
return getNumberA() * getNumberB();
}
}
public class OperationDiv extends Operation {
@Override
public double GetResult() throws Exception {
if (getNumberB() == 0)
throw new Exception("除数不可以为 0 !");
return getNumberA() / getNumberB();
}
}
public class Main {
public static void main(String[] args) throws Exception {
Operation operation = OperationFactory.createOperate("+");
operation.setNumberA(1);
operation.setNumberB(2);
double result = operation.GetResult();
System.out.println(result);
}
}