结构
概述
工厂类创建一个“抽象类产品”引用指向“具体实现类产品”,通过使用抽象类产品的方法执行具体实现类产品的方法。
例子
- 功能
- 类
- 工厂类 Factory
- 抽象类 Operation
- 具体实现类:Add/Sub/Mul/Div
- 代码
public Class Operation {
private double numA;
private double numB;
// 变量getset方法省略
public double getResult();
}
Class Add : Operation {
@override
public double getResult() {
return numA + numB;
}
}
Class Sub : Operation {
@override
public double getResult() {
return numA - numB;
}
}
public Class Factory {
public static Operation createOperation(String op) {
Operation oper = null;
switch (op) {
case "+" :
oper = new Add();
break;
case "-" :
oper = new Sub();
break;
default :
break;
}
return oper;
}
}
// 客户端代码
main () {
Operation oper = Factory.createOperation("-");
oper.setNumA(1);
oper.setNumB(2);
double result = oper.getResult();
}
- 类图