工厂方法模式,相对于简单工厂模式,将工厂类也抽象出来,所有的具体工厂需要implements抽象工厂接口,当要添加新的方法时,只需要继承Operation抽象类实现对应方法,并implements抽象接口,返回新建的Operation对象
Operation.java
public abstract class Operation {
private double num1;
private double num2;
public double getResult() {return 0.0;}
public double getNum1() {
return num1;
}
public void setNum1(double num1) {
this.num1 = num1;
}
public double getNum2() {
return num2;
}
public void setNum2(double num2) {
this.num2 = num2;
}
}
AddOperation.java
public class AddOperation extends Operation {
@Override
public double getResult(){
return this.getNum1()+this.getNum2();
}
}
OperationFactory.java
public interface OperationFactory {
public Operation createOperation();
}
AddOperationFactory.java
public class AddOperationFactory implements OperationFactory {
@Override
public Operation createOperation() {
return new AddOperation();
}
}
Main.java
public class Main {
public static void main(String args[]){
Operation operation=null;
OperationFactory operationFactory=new AddOperationFactory();
operation=operationFactory.createOperation();
operation.setNum1(1);
operation.setNum2(2);
System.out.println(operation.getResult());
OperationFactory operationFactory1=new SubOperationFactory();
operation=operationFactory1.createOperation();
System.out.println(operation.getResult());
}
}