博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单工厂模式
阅读量:7052 次
发布时间:2019-06-28

本文共 1345 字,大约阅读时间需要 4 分钟。

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

  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. }
注:本小白刚学习设计模式,难免会有一些错误,甚至本质性的错误,如有发现,还请交流
此代码为纯手工编写,所以格式应该会有一些错误,谨慎复制

转载于:https://www.cnblogs.com/xianglong0127/p/3866523.html

你可能感兴趣的文章
openssl crl2pkcs7 使用方法
查看>>
Apache Spark探秘:实现Map-side Join和Reduce-side Join
查看>>
【Docker学习笔记(六)】快速搭建Java Web应用
查看>>
SpringBoot RabbitMQ 集成 五 "Topics"
查看>>
Virtual SAN 读取 IO – 缓存/缓冲区/磁盘心轴
查看>>
AS3学习笔记(三)XML解析
查看>>
linux shell中所有括号的用法
查看>>
etcd v2文档(4) -- 客户端http请求管理etcd 版本号和节点状态
查看>>
Android签名总结
查看>>
cisco asa 5520 8.4 (二) -- 动态nat
查看>>
java.io.NotSerializableException
查看>>
实现VARCHART项目管理的技巧分享
查看>>
php中instanceof的作用
查看>>
oracle中 connect by prior 递归算法(层次化查询)
查看>>
javascript 字符串截取
查看>>
育儿 - 数学
查看>>
Bson项目的配置
查看>>
maven 笔记
查看>>
Webpack 笔记
查看>>
启用客服qq的方法
查看>>