您的位置:首页 > 其它

简单工厂模式加减乘除器

2016-03-26 15:01 183 查看
package com.main.cul;
import java.util.Scanner;
import com.factory.Operation;
public class Demo {
private static double result;
public static void main(String[] argv){

try{

Scanner in=new Scanner(System.in);
System.out.print("请输入数字A:");
double numA=in.nextDouble();

System.out.print("请选择操作+-*/(加减乘除):");
String strOper=in.next();
char  operate=strOper.charAt(0);

System.out.print("请输入数字B:");
double numB=in.nextDouble();
System.out.println("您输入的数字A:"+numA);
System.out.println("您输入的操作:"+operate);
System.out.println("您输入的数字B:"+numB);
Operation oper=OperationFactory.createOperate(operate);
Demo.result=oper.getResult(numA,numB);
System.out.print("结果为"+result);

}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}


工厂类

package com.main.cul;

import com.factory.AddOper;
import com.factory.DivOper;
import com.factory.MulOper;
import com.factory.Operation;
import com.factory.SubOper;

public abstract class  OperationFactory {

public static Operation createOperate(char ope){
Operation oper =null;
switch (ope) {
case '+':
oper =new AddOper();
break;
case '-':
oper =new SubOper();
break;
case '*':
oper =new MulOper();
break;
case '/':
oper =new DivOper();
break;
}
return oper;}
}


加减乘除类:

package com.factory;

public abstract class Operation {
protected double numA;
protected double numB;
protected double result;
public abstract double getResult(double numA, double numB);
}


package com.factory;

public class AddOper extends Operation {

public double getResult(double numA,double numB){
result=numA+numB;
return result;

}
}


package com.factory;
public class SubOper extends Operation {
public double getResult(double numA,double numB){
result=numA-numB;
return result;

}
}


package com.factory;
public class MulOper extends Operation {
public double getResult(double numA,double numB){
result=numA*numB;
return result;

}
}


package com.factory;
public class DivOper extends Operation {
public double getResult(double numA,double numB){
if(numB==0){

System.out.print("除数不能为0");
}
result=numA/numB;
return result;

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: