0

我正在考虑一个一般的 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 对象构建的。所以想法是我们只有一个通用的操作,它有一个类型参数,我们总是调用相同的请求(在这种情况下是/操作),实际的请求类型在 JSON 对象中。

我知道第一个看起来更好,但是还有其他原因可以说明它是更好的解决方案吗?它有更好的性能还是其他什么?

4

1 回答 1

0
  • 不应该有任何显着的性能差异。
  • 第一个代码更具可读性
  • 您必须始终为第二个解决方案传递额外的参数

您的问题可以简化为这种情况:

class A {
 methodA()
 methodB()
}

class B {
 methodC(Operation) {
    check what operation there is and invoke the needed method.
 }
}

如果您不想直接访问其他方法,或者如果您想在调用 methodA() 或 methodB() 之前进行额外的工作,则可以使用 B 类。例如,验证用户。

在 MVC 框架中,您已经有其他工具可以做到这一点。

于 2013-07-31T13:32:17.347 回答