今天看了你的《代码分层的设计之道》,有个有疑问需要请教下。我们要将尽可能多的业务处理放在业务逻辑层,参数校验为什么不在 Controller 层呢?
放在 Controller 层有两个问题,一个是如果被多个 Controller 层的方法调用就失去复用性。另外,一般参数校验和实例组装又耦合在一起,所以 Controller 会存在大量这样的代码,导致“坏味道”。当然,可以考虑通过 Hibernate Validator 解决问题。但是,本质上的思想是尽可能将通用的逻辑下层哟。业务逻辑层返回类型是 BO 对象,那么如果参数校验失败,怎么把具体哪个参数校验失败信息返回呢?一般情况下,我们会抛出自定义运行时异常,异常信息通过错误枚举类来控制。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。