今天就要来说说工厂模式了。
工厂负责将大量有共同接口的类实例化。工厂模式可以决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。
工厂模式的使用有很多种,简单工厂(静态工厂),工厂方法,抽象工厂,工厂+策略。
今天我会一一阐述。
1,简单工厂
/**
* 简单工厂模式的基类
*/
public class Operation {
private double numberA;//算法的第一个值
private double numberB;//算法的第二个值
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;
}
/**运算结果调用该方法
* @return 简单工厂处理加减乘除的运算,返回相应的结果
*/
public double getResult(){
return 0;
}
}
这是简单工厂模式的基类,一切拓展或者需要处理的类都要依赖于它。
/**
* 加法
*/
public class OperationAdd extends Operation {
/**重写算法结果
* @return
*/
@Override
public double getResult() {
return getNumberA()+getNumberB();
}
}
/**
* 减法
*/
public class OperationSub extends Operation {
/**重写算法结果
* @return
*/
@Override
public double getResult() {
return getNumberA()-getNumberB();
}
}
/**
* 乘法
*/
public class OperationMul extends Operation {
/**重写算法结果
* @return
*/
@Override
public double getResult() {
return getNumberA()*getNumberB();
}
}
/**
* 除法
*/
public class OperationDiv extends Operation {
/**重写算法结果
* @return
*/
@Override
public double getResult() {
if(getNumberB()==0)return 0;
return getNumberA()/getNumberB();
}
}