简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。
上代码:
package cn.evansung.design;
public class OperationFactory {
public static Operation createOperation(String operation) {
Operation oper = null;
switch (operation) {
case "+":
oper = new OperationAdd();
break;
case "-":
oper = new OperationSub();
break;
case "*":
oper = new OperationMul();
break;
case "/":
oper = new OperationDiv();
break;
}
return oper;
}
}
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();
}
class OperationAdd extends Operation {
@Override
public double getResult() {
// TODO Auto-generated method stub
return getNumA() + getNumB();
}
}
class OperationSub extends Operation {
@Override
public double getResult() {
return getNumA() - getNumB();
}
}
class OperationMul extends Operation {
@Override
public double getResult() {
return getNumA() * getNumB();
}
}
class OperationDiv extends Operation {
@Override
public double getResult() {
return getNumA() / getNumB();
}
}