父类
public abstract class Operator {
private double d1;
private double d2;
public double getD1() {
return d1;
}
public void setD1(double d1) {
this.d1 = d1;
}
public double getD2() {
return d2;
}
public void setD2(double d2) {
this.d2 = d2;
}
public abstract double getResult();
}
加法类
public class OperatorAdd extends Operator{
@Override
public double getResult() {
return this.getD1() + this.getD2();
}
}
减法类
public class OperatorSub extends Operator{
@Override
public double getResult() {
return this.getD1() - this.getD2();
}
}
乘法类
public class OperatorMul extends Operator{
@Override
public double getResult() {
return this.getD1() * this.getD2();
}
}
除法类
public class OperatorDiv extends Operator{
@Override
public double getResult() {
return this.getD1() / this.getD2();
}
}
工厂接口
public interface Factory {
Operator createFactory();
}
加法工厂
public class OperatorAddFactory implements Factory {
@Override
public Operator createFactory() {
return new OperatorAdd();
}
}
减法工厂
public class OperatorSubFactory implements Factory {
@Override
public Operator createFactory() {
return new OperatorSub();
}
}
乘法工厂
public class OperatorMulFactory implements Factory {
@Override
public Operator createFactory() {
return new OperatorMul();
}
}
除法工厂
public class OperatorDivFactory implements Factory {
@Override
public Operator createFactory() {
return new OperatorDiv();
}
}
使用
public static void main(String[] args) {
Factory factory = new OperatorAddFactory();
Operator operator = factory.createFactory();
operator.setD1(111);
operator.setD2(222);
double res = operator.getResult();
System.out.println(res);
}
输出
333.0
网友评论