operation类,这是一个抽象类,是所有运算类的父类。抽象方法是getResult(),供子类实现从而实现具体的运算功能
public abstract class Operation {
//定义运算中用到的两个数字
private int a;
private int b;
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
public int getB() {
return b;
}
public void setB(int b) {
this.b = b;
}
public abstract int getResult();
}
AddOperation类,这个是operation类的子类,实现加法功能。
<pre name="code" class="java">public class AddOperation extends Operation{
@Override
public int getResult() {
// TODO Auto-generated method stub
//直接调用父类的方法得到运算的数字
return getA()+getB();
}
}
SubOperation类,
这个是operation类的子类,实现减法的功能
<pre name="code" class="java">public class SubOperation extends Operation{
@Override
public int getResult() {
// TODO Auto-generated method stub
//直接调用父类的方法得到运算的数字
return getA()-getB();
}
}
<span style="font-family:SimSun;font-size:12px;">OperationFactory类,这个类能够生成具体的运算类实例</span>
<pre name="code" class="java">public class OperationFactory {
public static Operation createOperation(int soperation){
Operation operation = null;
switch(soperation){
case 1:
operation = new AddOperation();
break;
case 2:
operation = new SubOperation();
break;
}
return operation;
}
}
使用时候的代码
<pre name="code" class="java"> int A = 5;
int B = 3;
Operation opera = OperationFactory.createOperation(2);
opera.setA(A);
opera.setB(B);
System.out.println("结果是:"+opera.getResult());