我正在研究MVC模式之後的Spring應用程序,並想知道什麼被認爲是制定可靠服務層的「最佳實踐」。此問題的原因是以下示例情況:將數據傳遞到服務層的最佳實踐
加載用於編輯用戶信息的頁面。提交此表單後,我將其所有數據都收集到一個特定的Command類中,該類僅包含隨後的操作(更新用戶)所需的數據。
我能想到的幾種情況,現在這個信息傳遞給我服務層:
- 傳遞命令本身:userService.save(命令);
- 傳遞一個模型類,在controller中獲取:userService.save(user);
- 傳遞模型類和命令:userService.save(user,command);
- 傳遞所有的參數分別:userService.save(command.getName(),...)
在我看來將命令傳遞類本身看起來像最優雅的解決方案,我可以先驗證所有自動使用框架的值將它們傳遞給我的服務。我在這裏擔心的是,當我從另一個類(而不是通過我的表單/控制器)調用方法時,我可以用無效數據填充此命令對象,從而導致服務層可能出現錯誤。
你會推薦什麼?爲什麼?
或者服務層信任te層調用它,dosn't不驗證命令,或者不信任它,並且應該驗證它接收到的數據。你只需要清楚地定義每一層的責任。無論你做什麼,你總能夠傳遞無效的數據。進行測試以確保您不會。 –