简单工厂模式的UML图
源码:Operation类
package Operation;
public abstract class Operation {
double numberA=0;
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 abstract double operate();
}
加类:
package Operation;
public class Add extends Operation {
@Override
public double operate() {
return numberA+numberB;
}
}
减类:
package Operation;
public class Sub extends Operation {
@Override
public double operate() {
return numberA-numberB;
}
}
乘类:
package Operation;
public class Mul extends Operation {
@Override
public double operate() {
return numberA*numberB;
}
}
除类:
package Operation;
import java.io.IOError;
public class Div extends Operation {
@Override
public double operate() {
try {
return numberA/numberB;
} catch (IOError e) {
System.out.println("除数不能为空!");
return 0;
}
}
}
工厂类:
import Operation.Add;
import Operation.Div;
import Operation.Mul;
import Operation.Operation;
import Operation.Sub;
public class OperationFactory {
public static Operation createOperation(char operate){
Operation operation=null;
switch (operate) {
case '+':
operation=new Add();
break;
case '-':
operation=new Sub();
break;
case '*':
operation=new Mul();
break;
case '/':
operation=new Div();
break;
}
return operation;
}
}
客户端:
import Operation.Operation;
public class Client {
public static void main(String[] args) {
Operation operation = OperationFactory.createOperation('*');
operation.setNumberA(12);
operation.setNumberB(6);
System.out.println(operation.operate());
}
}