UML图如下
package com;
public class ArithmeticModel {
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;
}
public double getResult() {
return 0;
}
}
package com;
public class View {
public static void main(String[] args) {
ArithmeticModel model = new CalculatorFactory().create_arithmetic("/");
model.setNumberA(1);
model.setNumberB(0);
System.out.println(model.getResult());
}
}
package com;
import com.arithmetic.Additon;
import com.arithmetic.Division;
import com.arithmetic.Multiplication;
import com.arithmetic.Subtraction;
public class CalculatorFactory {
public ArithmeticModel create_arithmetic(String symbol){
ArithmeticModel model = null;
switch (symbol) {
case "+":
model = new Additon();
break;
case "-":
model = new Subtraction();
break;
case "*":
model = new Multiplication();
break;
case "/":
model = new Division();
break;
default:
break;
}
return model;
}
}
package com.arithmetic;
import com.ArithmeticModel;
public class Additon extends ArithmeticModel{
public double getResult(){
return getNumberA()+getNumberB();
}
}
package com.arithmetic;
import com.ArithmeticModel;
public class Division extends ArithmeticModel{
public double getResult(){
if(getNumberB()==0){
try {
throw new Exception("除数不能为0");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return getNumberA()/getNumberB();
}
}