2014-02-20 30 views
0

我正在設計由REST API調用的後端EJB調用。
EJB調用示例;
獲取所有系統映射爲EJB後端調用的所有字段的參數

getSystems(String systemId)

現在我知道我會得到系統的ID來獲得所有系統。 有一些檢索它們另一種獨特的ID和的可能性

getSystemsByOtherId(String otherId)

有要求,有可能在

getSystems(String systemId, String sort_by, String sort_how)

進行排序參數傳遞它會更好有像地圖爲PARAM並將它通過與每個信息

getSystems(Map criteria)

因此,如果需要在未來的鍵值對的地圖會有的systenId,otherId,sort_by,sort_how多。或者更好地遵循其他方法對不同的參數有獨特的方法。或者如果有其他更好的方法。

謝謝。

+0

你爲什麼不使用一個對象?就像'getSystems(Criteria criteria)',類'Criteria'可以改變而不改變你的EJB簽名 – Camilo

回答

0

第一個解決方案有點麻煩,如果您想添加或刪除參數,您必須每次修改EJB的簽名,地圖解決方案有點髒,因爲您必須跟蹤在運行時你的參數名稱,如果你想使用除String以外的類型的參數,那麼你在運行時也會失去輸入信息。

這是我會怎麼做,來封裝你的參數類:

public class Criteria { 
    private String systemId; 
    private String otherId; 
    private String sortBy; 
    private String sortHow; 
     . 
     . 
     . 
} 

,並在你的EJB,

getSystem(Criteria criteria) 
相關問題