首页 > 技术文章 > 简单工厂模式

xianglong0127 2014-07-24 08:49 原文

本文创建一个简单计算器,应用简单工厂模式:程序功能,用户输入俩个数字和一个运算符(+-*/),输出答案.

  1. //创建基类
  2. Class Operation{
  3. double mnumberA,mnumberB,result=0;
  4. getmnumberA(){
  5. return mnumberA;
  6. }
  7. setmnumberA(double a){
  8. mnumberA=a;
  9. }
  10. getmunmberB(){
  11. return mnumberB;
  12. }
  13. setmnumberB(double b){
  14. mnmuberB=b;
  15. }
  16. getResult(){
  17. return result;
  18. }
  19. }
  20. //创建四个类,功能分别为进行四个运算,继承Operation类
  21. Class opadd{
  22. double getResult(double a,double b){
  23. return a+b;
  24. }
  25. }
  26. Class opdec{
  27. double getResult(double a,double b){
  28. return a-b;
  29. }
  30. }
  31. Class opmul{
  32. double getResult(double a,double b){
  33. return a*b;
  34. }
  35. }
  36. Class opdiv{
  37. double getResult(double a,double b){
  38. return a/b;
  39. }
  40. }
  41. //创建工厂类
  42. Class Factory{
  43. String result;
  44. getResult(double a,double b,String op){
  45. switch(op){
  46. case "+"
  47. result=opadd.getResult(a,b);
  48. break;
  49. case "-"
  50. result=opdec.getResult(a,b);
  51. break;
  52. case "*"
  53. result=opmul.getResult(a,b);
  54. break;
  55. case "/"
  56. result=opmul.getResult(a,b);
  57. break;
  58. }
  59. }
  60. return result;
  61. }
  62. //主函数
  63. Class Program{
  64. public static void main(string[] args){
  65. Scaner scaner=new Scaner(System.in);
  66. system.out.println("请输入数字a:");
  67. double a=scaner.nextdouble();
  68. system.out.println("请输入数字b:");
  69. double b=scaner.nextdouble();
  70. systme.out.println("请输入运算符");
  71. string c=scaner.next();
  72. double result=Factory.getResult(a,b,c);
  73. system.out.println(result);
  74. }
  75. }
注:本小白刚学习设计模式,难免会有一些错误,甚至本质性的错误,如有发现,还请交流
此代码为纯手工编写,所以格式应该会有一些错误,谨慎复制

推荐阅读