工厂方法模式

2019-10-17  本文已影响0人  小明今晚加班

凡是有大量的产品需要创建,并且有共同的接口时,都可以用工厂方法模式进行创建,最好是采用静态工厂方法, 这可避免简单工厂的传参错误,也可避免多模式工厂的创建工厂实例过程。

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();
    }
}
上一篇 下一篇

猜你喜欢

热点阅读