《大话设计模式》第一章
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());
}
}
这个不需要什么解释,代码应该很好理解。

本文通过一个简单的计算器程序示例介绍了简单工厂模式的应用。该程序实现了加、减、乘、除四种运算,并通过简单工厂模式来创建不同的操作对象。
4029

被折叠的 条评论
为什么被折叠?



