一、定义
通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。
二、类图
三、理解
Operation为抽象类,它定义了一个抽象方法getResult;OperationAdd和OperationSubtraction两个类为Operation的子类,实现了它的getResult方法,OperationAdd为加法类,OperationSubtraction为减法类。
四、代码实现
Operation抽象类
/**
* 运算超类
*/
public abstract class Operation {
public abstract double getResult(double t1, double t2);
}
OperationAdd类
/**
* 加法操作
*/
public class OperationAdd extends Operation {
@Override
public double getResult(double t1, double t2) {
return t1 + t2;
}
}
OperationSubtraction类
/**
* 减法操作
*/
public class OperationSubtraction extends Operation {
@Override
public double getResult(double t1, double t2) {
return t1 - t2;
}
}
OperationFactory类
/**
* 简单工厂实现
*/
public class OperationFactory {
public static Operation createOperate(String operate) throws Exception {
Operation oper = null;
switch (operate) {
case "+":
oper = new OperationAdd();
break;
case "-":
oper = new OperationSubtraction();
break;
default:
throw new Exception("no search operate!");
}
return oper;
}
}