概述
用户输入特定指令,由一个工厂类根据指令生成不同类的实例(提供一个静态方法),这些类可继承一个父类。这样,返回的是父类引用,生成的是特定的实现类,实现了细节的隐藏。
举例
简易计算器
涉及的类:工厂类、运算父类、运算加类、运算减类
运算父类
class Operation{
private double number1;
private double number2;
//getter and setter
public double getResult(){
return 0;
}
}
运算加类
class OperationAdd extends Operation{
public double getResult(){
return number1 + number2;
}
}
运算减类
class OperationSub extends Operation{
public double getResult(){
return number1 - number2;
}
}
工厂类
class OperationFactory{
public static Operation createOperation(String type){
Operation oper = null;
switch(type){
case "+":
oper = new OperationAdd();
break;
case "-":
oper = new OperationSub();
break;
}
return oper;
}
}
客户端
Operation oper = OperationFactory.createOperation("+");
oper.setNumber1(1);
oper.setNumber2(2);
double result = oper.getResult();