问题:记得以前自己也考虑过验证应该加在哪里这个问题,是在action验证呢,还是在service再就加一次验证呢!一直到现在也是很迷惑的,今天在je上又看到这样的讨论(http://www.iteye.com/topic/1050909?page=4)。里面有几个哥们写的还是蛮好的现在把自己的想法写下
1。如果是内部封闭系统,作为mvc的控制端,我会把验证放在action,因为这里的验证和验证后提供很好的可视化反馈都有框架,相信很多系统都是这么做的!然而我要说的是,逻辑验证写成单独的service,对action暴露接口,action层调用!action只做数据校验和基本组装!
2。对于对外系统(即部分service会被外部系统调用!):对于这样的程序,我会选择在被外部调用的service里面添加验证,因为对外暴露的接口要对自己负责任,这个就类似于写webservice的时候你需要给出错误码给调用方一样!个人认为会选择一个大的验证人然后用Aop的方式来插入验证!
3。还是觉得方法要对自己负责这句话!至于验证要看这个方法要付多少责任了!如果不被外部调用,你完全可以在action验证完,service不做验证!至于系统内的模块交叉调用,可以通过规定来搞定!
4。如果架构师已经规定了数据输入验证规则,那基本就不用考虑了,直接按规则走就好了!
在这里只是为了告诉自己,数据输入规则,应该如何定义,然后在设计系统的时候架构输入规则是必须的!因为很多程序员都会有这方面的迷惑!