《大话设计模式》第一章
package ch01;
public abstract class Operation {
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 abstract double getResult() throws Exception;
}
package ch01;
public class OperationAdd extends Operation {
@Override
public double getResult() throws Exception {
return getNumberA() + getNumberB();
}
}
package ch01;
public class OperationDiv extends Operation {
@Override
public double getResult() throws Exception {
return getNumberA() / getNumberB();
}
}
package ch01;
public class OperationMul extends Operation {
@Override
public double getResult() throws Exception {
return getNumberA() * getNumberB();
}
}
package ch01;
public class OperationSub extends Operation {
@Override
public double getResult() throws Exception {
return getNumberA() - getNumberB();
}
}
package ch01;
public class OperationFactory {
public static Operation createOperation(String operate) {
Operation oper = null;
if ("+".equals(operate)) {
oper = new OperationAdd();
} else if ("-".equals(operate)) {
oper = new OperationSub();
} else if ("*".equals(operate)) {
oper = new OperationMul();
} else if ("/".equals(operate)) {
oper = new OperationDiv();
}
return oper;
}
}
package ch01;
/**
* 简单工厂模式
* @author Administrator
*
*/
public class Client {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Operation oper = OperationFactory.createOperation("+");
oper.setNumberA(3.0);
oper.setNumberB(4.0);
System.out.println(oper.getResult());
}
}
这个不需要什么解释,代码应该很好理解。