我正在按照 MVC 模式在春季开发一个 Web 应用程序,并且想知道什么被认为是制作可靠服务层的“最佳实践”。这个问题的原因是以下示例情况:
加载了用于编辑用户信息的页面。提交此表单后,我在特定的 Command 类中的控制器方法中收集其所有数据,该类仅包含后续操作(更新用户)所需的数据。
我现在可以想到几种情况来将此信息传递给我的服务层:
- 传递命令本身:userService.save(command);
- 传递模型类,在控制器中获取:userService.save(user);
- 同时传递模型类和命令: userService.save(user, command);
- 单独传递所有参数:userService.save(command.getName(), ...)
在我看来,传递命令类本身看起来是最优雅的解决方案,因为我可以首先使用框架自动验证所有值,然后将它们传递给我的服务。我在这里担心的是,当我从另一个类(而不是通过我的表单/控制器)调用该方法时,我可以用无效数据填充这个命令对象,从而导致服务层中可能出现错误。
你会推荐什么,为什么?