通过 不同 的 传入参数来实例化不同类的实例对象,即专门创建一个类来实现其它类的实例。
被创建的实例通畅具有共同的父类
优点:使用者不需要考虑调用特定类的内部实现
缺点:当有新的需求时,需要去修改工厂类。
抽象类---计算方法 , 这里有一个抽象方法,getResult需要子类自己去实现
abstract class Operation {
double numberA = 0;
double numberB = 0;
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;
}
abstract double getResult();
}
子类----加法计算
public class _add extends Operation{
@Override
public double getResult() {
double numberA = this.getNumberA();
double numberB = this.getNumberB();
return (numberA + numberB);
}
}
简单工厂类---利用多态返回父类引用
public class OperationFactory {
public static Operation createOpreation(String operate){
Operation operation = null;
if(operate.equals("+")){
operation = new _add();
}else if (operate.equals("-")){
operation = new _sub();
}
return operation;
}
}
测试类
public class test {
public static void main(String[] args) {
Operation opreation = OperationFactory.createOpreation("-");
opreation.setNumberA(4);
opreation.setNumberB(7);
double result = opreation.getResult();
System.out.println(result);
}
}