我正在研究MVC模式之后的Spring应用程序,并想知道什么被认为是制定可靠服务层的“最佳实践”。此问题的原因是以下示例情况:将数据传递到服务层的最佳实践
加载用于编辑用户信息的页面。提交此表单后,我将其所有数据都收集到一个特定的Command类中,该类仅包含随后的操作(更新用户)所需的数据。
我能想到的几种情况,现在这个信息传递给我服务层:
- 传递命令本身:userService.save(命令);
- 传递一个模型类,在controller中获取:userService.save(user);
- 传递模型类和命令:userService.save(user,command);
- 传递所有的参数分别:userService.save(command.getName(),...)
在我看来将命令传递类本身看起来像最优雅的解决方案,我可以先验证所有自动使用框架的值将它们传递给我的服务。我在这里担心的是,当我从另一个类(而不是通过我的表单/控制器)调用方法时,我可以用无效数据填充此命令对象,从而导致服务层可能出现错误。
你会推荐什么?为什么?
或者服务层信任te层调用它,dosn't不验证命令,或者不信任它,并且应该验证它接收到的数据。你只需要清楚地定义每一层的责任。无论你做什么,你总能够传递无效的数据。进行测试以确保您不会。 –