public class Operation {
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(){
double rusult = 0;
return rusult;
}
}
public class OperationAdd extends Operation {
public double getResult(){
double result = 0;
result = getNumberA() + getNumberB();
return result;
}
}public class OperationSub extends Operation {
public double getResult(){
double result = 0;
result = getNumberA() - getNumberB();
return result;
}
}
public class OperationMul extends Operation {
public double getResult(){
double result = 0;
result = getNumberA() * getNumberB();
return result;
}
}public class OperationDiv extends Operation {
public double getResult() {
double result = 0;
try{
result = getNumberA() / getNumberB();
}
catch(Exception e){
e.printStackTrace();
}
return result;
}
}public class Factory {
public static Operation createOperation(String operate){
Operation oper = null;
switch (operate) {
case "+":
oper = new OperationAdd();
break;
case "-":
oper = new OperationSub();
break;
case "*":
oper = new OperationMul();
break;
case "/":
oper = new OperationDiv();
break;
default:
break;
}
return oper;
}
}
public class test {
public static void main(String[] args) {
Operation oper = Factory.createOperation("+");
oper.setNumberA(1);
oper.setNumberB(2);
double result = oper.getResult();
System.out.println(result);
}
}
例程思路:
》》将每个运算看作一个对象,抽象出共同特征:属性:numberA , numberB
方法:getResult()
封装成类Operation。
》》为每个运算分别创建一个类,并继承Operation类,实现具体的运算。
》》创建工厂类。
》》由工厂类生产具体的运算实例。
此例程虽小,但却应用到了面向对象的抽象、封装、继承、多态的特征。
简单工厂模式:
》》场景:产品类的实例化过程复杂
》》好处:通过简单工厂模式,将产品实例化封装起来,这样,调用者就无需关心产品的实例化过程,依赖工厂就可以得到自己想要的产品。
菜鸟一枚,望多多指教。。
本文介绍了一种使用面向对象编程思想和简单工厂模式实现基本数学运算的方法,详细阐述了类的设计、继承与多态的概念,并通过一个简单的例子展示了如何创建和使用不同类型的运算对象。
1339

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



