第一步:定义工厂类:OperationFactory
package com.lichi.factory;
/**
* 简单工厂模式
* @author lichi
* @create 2020-01-07 9:24
*/
public class OperationFactory {
public static Openration createOperate(String operation){
Openration oper = null;
switch (operation){
case "+":
oper = new OperationAdd();
break;
case "-":
oper = new OperationSub();
break;
}
return oper;
}
public static void main(String[] args) {
Openration openration_add = OperationFactory.createOperate("+");
openration_add.setNumberA(1);
openration_add.setNumberB(2);
System.out.println(openration_add.GetResult());
Openration openratio_sub = OperationFactory.createOperate("-");
openratio_sub.setNumberA(4);
openratio_sub.setNumberB(2);
System.out.println(openratio_sub.GetResult());
}
}
第二步:定义运算类:Openration
package com.lichi.factory;
/**
* 运算类
* @author lichi
* @create 2020-01-07 9:27
*/
public class Openration {
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 double GetResult(){
double result = 0;
return result;
}
}
第二步:继承运算类的加法运算类:OperationAdd
package com.lichi.factory;
/**
* 加法运算类
* @author lichi
* @create 2020-01-07 9:30
*/
public class OperationAdd extends Openration{
@Override
public double GetResult(){
double result = 0;
result = getNumberA() + getNumberB();
return result;
}
}
第二步:继承运算类的减法运算类:OperationSub
package com.lichi.factory;
/**
* 减法运算类
* @author lichi
* @create 2020-01-07 9:30
*/
public class OperationSub extends Openration{
@Override
public double GetResult(){
double result = 0;
result = getNumberA() - getNumberB();
return result;
}
}
简单工厂设计模式的个人理解:通过工厂类进行加法类、减法类的创建,同时加法类、减法类重载运算类的GetResult方法