工厂方法模式
UML
![工厂方法模式](https://i-blog.csdnimg.cn/blog_migrate/90c18d7a87844e0ec7cc49614d2baa8c.png)
解释说明
- 工厂方法模式是简单工厂模式的进一步抽象和推广。
- 工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。
- 工厂方法模式使一个类的实例化延迟到其子类。
代码实现
package learn05;
public abstract class Operation {
private double numberA =0;
private 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;
}
public abstract double getResult();
}
package learn05;
public class OperationAdd extends Operation{
@Override
public double getResult() {
return getNumberA()+getNumberB();
}
}
package learn05;
public class OperationSub extends Operation{
@Override
public double getResult() {
return getNumberA()-getNumberB();
}
}
package learn05;
public interface IFactory {
Operation createOperation();
}
package learn05;
public class AddFactory implements IFactory {
@Override
public Operation createOperation() {
return new OperationAdd();
}
}
package learn05;
public class SubFactory implements IFactory {
@Override
public Operation createOperation() {
return new OperationSub();
}
}
import learn05.*;
public class Main {
public static void main(String[] args) {
IFactory addFactory = new AddFactory();
Operation addOperation=addFactory.createOperation();
addOperation.setNumberA(10);
addOperation.setNumberB(15);
System.out.println(addOperation.getResult());
}
}
参考资料