码迷,mamicode.com
首页 > 其他好文 > 详细

记一次“动态方法名”调用

时间:2016-08-08 17:14:22      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

接到需求,为APP提供数据调用接口,需要保证客户端请求路径不变(请求头中的方法版本信息可以根据需求进行调整)。

最直观的想法是通过配置文件来完成。

例如在xml中,通过版本号,方法名,Service名来唯一定位需要执行的方法。

上述方法貌似可以解决问题。可是增加了很多无意义的重复劳动。

再想想,通过定义规范,注解,反射貌似也可以完成。

规范如下:

 方法名+版本号,例如:findUser_1_0_1(String username);

在进行版本迭代的时候,对版本号进行调整。例如findUser_1_0_3(String username);

于此同时,在需要“动态方法名”的调用的方法上加入自定义注解(记录版本号)。

这个注解的作用,主要用来接收前段head中的版本信息,结合方法名。完成方法名的构造。

最后,通过反射,获取到被调用类上,有自定义注解的所有方法。

根据前段传递过来的方法名与版本号进行拼接。

将拼接结果与方法进行比对。

而后invoke回去即可完成"动态"方法调用。

为了代码的美观,将上述代码抽离成父类,供子类继承。

当然,这么搞也是需要做重复工作的,例如,每个Service都要继承BaseService(存放抽离代码的类)。

 

记一次“动态方法名”调用

标签:

原文地址:http://www.cnblogs.com/yuxinglab/p/5749917.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!