2013-07-31 35 views
0

我在考慮一個通用的RequestMapping問題。在沒有選擇任何特定的MVC框架的情況下,將基於註釋的請求映射與簡單的參數檢查器映射進行比較,哪個更好?帶註釋的請求映射vs參數

可以說我想創建一個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); 
    } 
} 

在第二個例子,可以說操作對象從JSON對象建。所以我們的想法是我們只有一個Operation類型,它有一個類型參數,我們總是調用相同的請求(在這種情況下爲/操作),實際的請求類型在JSON對象中。

我知道第一個看起來更好,但是有什麼其他原因,爲什麼它是更好的解決方案嗎?它有更好的表現還是別的?

回答

0
  • 應該沒有任何顯着的性能差異。
  • 第一個代碼是更具可讀性
  • 你要通過額外的參數,所有的時間第二個解決方案

你的問題可以簡化爲這樣的情況:

class A { 
methodA() 
methodB() 
} 

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

你會如果您不希望直接訪問其他方法,或者您希望在調用methodA()或methodB()之前做額外的工作,則可以與B類一起使用。例如,驗證用戶。

在MVC框架中,您已經有其他工具可以做到這一點。