凡是有大量的产品需要创建,并且有共同的接口时,都可以用工厂方法模式进行创建,最好是采用静态工厂方法, 这可避免简单工厂的传参错误,也可避免多模式工厂的创建工厂实例过程。
package factory;
/**
* 公共接口
*/
public class Operation {
private double value1=0d;
private double value2=0d;
public double getValue1(){
return this.value1;
}
public double getValue2(){
return this.value2;
}
public void setValue1(double value1){
this.value1 = value1;
}
public void setValue2(double value2){
this.value2 = value2;
}
public double getResult(){
return 0d;
}
}
具体操作的类:
package factory;
public class ConcretAdd extends Operation {
@Override
public double getResult() {
return super.getValue1() + super.getValue2();
}
}
public class ConcretDiv extends Operation {
@Override
public double getResult(){
return super.getValue1() / super.getValue2();
}
}
public class ConcretMul extends Operation {
@Override
public double getResult() {
return super.getValue1() * super.getValue2();
}
}
public class ConcretSub extends Operation {
@Override
public double getResult() {
return super.getValue1() - super.getValue2();
}
}
静态工厂类:
public class StaticFactory {
public static Operation addFactory() {
return new ConcretAdd();
}
public static Operation subFactory() {
return new ConcretSub();
}
public static Operation MulFactory() {
return new ConcretMul();
}
public static Operation divFactory() {
return new ConcretDiv();
}
}
网友评论