工厂方法模式(Factory Method)
定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到其子类.
工厂方法模式结构图
Demo
声明工厂方法
package com.frank.design.factorymethod.demo;
/**
* @AUTHOR:BSNPC1O
* @DATE:08/03/2018
*/
public interface IFactory {
public CalOperation operation();
}
定义工厂方法所创建的对象接口
package com.frank.design.factorymethod.demo;
public abstract class CalOperation {
private double firstNum;
private double seconNum;
public abstract double getResult();
public double getFirstNum() {
return firstNum;
}
public void setFirstNum(double firstNum) {
this.firstNum = firstNum;
}
public double getSeconNum() {
return seconNum;
}
public void setSeconNum(double seconNum) {
this.seconNum = seconNum;
}
}
重定义加法,减法工厂实例
package com.frank.design.factorymethod.demo;
/**
* @AUTHOR:BSNPC1O
* @DATE:08/03/2018
*/
public class AddFactory implements IFactory {
@Override
public CalOperation operation() {
return new AddOperation();
}
}
/**
* @AUTHOR:BSNPC1O
* @DATE:08/03/2018
*/
public class SubstractionFactory implements IFactory {
@Override
public CalOperation operation() {
return new SubstractionOperation();
}
}