简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。《百度百科》
闲话不多说上代码
首先创建一个model 用来 存取对象
Opertion.java
public class Opertion {
private double num1;
private double num2;
public double getNum1() {
return num1;
}
public void setNum1(double num1) {
this.num1 = num1;
}
public double getNum2() {
return num2;
}
public void setNum2(double num2) {
this.num2 = num2;
}
public double getResult() {
double result = 0;
return result;
}
}
这个代码主要用于存储对象,以及作为一个公共父类的作用,所有运算类都必须继承他并且重写其getresult方法
运算类
加法类
AddOpertion.java
public class AddOpertion extends Opertion {
@Override
public double getResult() {
// TODO Auto-generated method stub
double result =getNum1()+getNum2();
return result;
}
}
减法类
SubOpertion.java
public class SubOpertion extends Opertion {
@Override
public double getResult() {
// TODO Auto-generated method stub
double result =getNum1()-getNum2();
return result;
}
}
乘法类
MulOpertion.java
public class MulOpertion extends Opertion {
@Override
public double getResult() {
// TODO Auto-generated method stub
double result =getNum1()*getNum2();
return result;
}
除法类
DivOpertion.java
public class DivOpertion extends Opertion {
@Override
public double getResult() {
// TODO Auto-generated method stub
if (getNum2()==0) {
try {
throw new Exception("除数不可为零");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
double result =getNum1()/getNum2();
return result;
}
}
最终是运算类
Calculate.java
public class Calculate {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入number1:");
double num1=sc.nextDouble();
System.out.println("请输入number2:");
double num2=sc.nextDouble();
System.out.println("请输入运算符:");
String opersString=sc.next();
Opertion opertion=OpertionFactory.crOpertion(opersString);
opertion.setNum1(num1);
opertion.setNum2(num2);
double result=opertion.getResult();
System.out.println("结果"+result);
}
}
以上是全部代码复制就可以用。
参考资料《大话设计模式》 程杰 著