Closed yinjihao closed 5 years ago
Router.callMethod的目的就是减少模块之间的代码耦合,如果希望用Java语法来约束调用方,就可能使得代码耦合增加。
建议方法1:维护一个文档,说明每个方法的参数。就像客户端和后台通信定义的接口文档一样。 建议方法2:在调用方法的模块或者底层封装一个工具方法,工具方法约束好参数,方法里面再调用Router.callMethod。例如:
public class MathUtils {
public static Integer add(Integer a, Integer b) {
return Router.callMethod(DemoConstant.ADD_METHOD, a, b);
}
}
通过Demo中的Router.callMethod(path,args)中只要传入对应的路径和方法的入参的个数就可以调用,暴露了一个问题。 以下代码都是WMRouterDemo中的代码 假如我的方法调用原先是: Integer result = Router.callMethod(DemoConstant.ADD_METHOD, 1, 2); 它是两个入参:1,2 而且对应的addMethod方法也是实现的Func2,而且可以正常返回。 但是当我将代码改成: Integer result = Router.callMethod(DemoConstant.ADD_METHOD, 1); 此时它的入参只有:1,但是对应的addMethod方法也是实现的Func2. 当我调用的时候程序会crash. 是因为我并不能感知到对应方法参数名的改变,大体是意思是这个. 请问能有一种比较好的方式解决这个问题吗, 如果不清晰可以加我vx:598941331