简单工厂模式加减乘除器
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; } }
相关文章推荐
- iOS 视图控制器转场详解(转载)
- GitHub Android Libraries Top 100 简介
- 嵌入式窗口系统
- 浅谈几种常见语言的命名空间(Namespace)
- Java学习笔记--ThreadLocal
- jsp中java代码、jsp代码、js代码执行的顺序
- 获取Android设备标识符
- 机器学习基础(二十五)—— Feature Selection
- C++中的this
- Java volatile
- Java程序编译&运行笔记
- hi35xx样例程序使用
- 关于第三方库
- 批量漏洞检测框架
- JSP
- 4-1 yum源文件
- css3 一个简单的静态立方体
- jquery实现hover图片半透明效果
- Qt乱码问题>>
- 【经典算法】——KMP,深入讲解next数组的求解