根据接口文档撸代码的心得
来源:互联网 发布:淘宝有虚拟试衣功能吗 编辑:程序博客网 时间:2024/05/19 23:09
需求:在现有的web项目调用设备的接口来操控设备分析过程: 文档的接口很多大概一两百,每个接口的参数个数不统一,有些是post,有些是get如果像这样:public String methodA(String arg1,String arg2 ...){ httpClientUtil.post(...);}public String methodB(String arg1,String arg2 ,String arg3...){ httpClientUtil.get(...);} 势必会很乱(其实我刚开始就是这么搞的),细看会发现这些接口还是有很多共同点的于是改为:public String methodA(String jsonParameters,String postORget){ httpClientUtil.service(postORget , ...);}public String methodB(String jsonParameters,String postORget){ httpClientUtil.service(postORget , ...);}于是方法都统一了,其实很简单就是把所有参数都封装到一个json字符串中,另外提供一个判断是post或get的标志httpClientUtil.service(postORget , ...)会根据标志调用post或get貌似service层已经很简洁了,可是controller层还有问题因为每次调用service的方法都会在之前和之后执行一样的操作public String doXXX(String ...){ ...... if(xxx){ a1(); result=service.methodA(); a2(); } return result;}如果不嫌麻烦这样写没问题,但是对于有洁癖的程序员是不能容忍的这次完全可以模仿刚才统一post和get一样,但是之前只有两个,现在有两百个,当然不能再用枚举去得到方法于是想到Java反射机制:public String doYYY(String methodName,String args,..){ ...... if(xxx){ a1(); Method method=TheSevice.class.getDeclaredMethod(methodName,new Class[]{.String.class , ..}); result=method.invoke(theService,args,..); a2(); } return result;}public String doXXX(String ...){ return doYYY("yourMethodName","yourArgs",otherNeed....);}现在的重复代码少多了!心得:1.接口写得垃圾会给调用者带来很多麻烦 2.尽量减少重复代码
1 0
- 根据接口文档撸代码的心得
- 需求规格文档的心得
- 文档管理的一些心得
- 我的代码心得
- 代码的个人心得
- 代码review的心得
- 写代码的心得
- IDataSet接口的使用心得
- ServletContextListener接口的使用心得
- ServletContextListener接口的使用心得
- ServletContextListener接口的使用心得
- localStorage接口的使用心得
- ServletContextListener接口的使用心得
- ServletContextListener接口的使用心得
- DSO的接口文档
- 接口文档的核心内容
- 接口文档的管理
- 操作文档的接口
- PHP填坑——类与对象
- jsp 基础页面
- Logistic回归
- Collection、Map两大基础回顾(本篇为Map)
- 此博文目录有几个解决问题的思路可以借鉴
- 根据接口文档撸代码的心得
- tensorflow 1.0安装过程中出现/usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.19' not found问题的解决
- java异常体系____《Effective Java》中关于异常处理的几条建议
- H5新增功能
- JVM调优总结(八)-典型配置举例2
- Loopback中设置权限
- Socket、TCP/IP、HTTP、FTP及网络编程
- mst2
- Linux学习笔记11 usermod,chsh,chfn,passwd,pwck,groupadd,groupmod,groupdel,newgrp,chage