我正在考虑一个一般的RequestMapping问题。在没有选择任何特定的MVC框架的情况下,将基于注释的请求映射与简单的参数检查器映射进行比较,哪个更好?
假设我想创建一个Web服务,它应该处理例如“添加”和“删除”操作。
使用注释,它看起来像这样:
@Path("/add")
public void add(String addable) {}
@Path("/remove")
public void remove(String deletable) {}
使用参数它看起来像这样:
@Path("/operation")
public void doOperation(Operation op) {
String type = op.getType();
if ("add".equals(type)) {
add(op);
} else if ("remove".equals(type)) {
remove(op);
}
}
在第二个例子中,假设Operation对象是从JSON对象构建的。所以我们的想法是我们只有一个通用的Operation,它有一个类型参数,我们总是调用相同的请求(在这种情况下为/ operation),实际的请求类型在JSON对象中。
我知道第一个看起来更好,但还有其他原因可以解决这个问题吗?它有更好的性能还是其他什么?
答案 0 :(得分:0)
您的问题可以简化为这种情况:
class A {
methodA()
methodB()
}
class B {
methodC(Operation) {
check what operation there is and invoke the needed method.
}
}
如果您不想直接访问其他方法,或者想要在调用methodA()或methodB()之前做额外的工作,那么您将使用B类。例如,验证用户。
在MVC框架中,您已经有其他工具可以做到这一点。