一直疑惑,WinForm中(当然ASP.NET中也行),三层架构,数据验证到底在写在Form中,还是写在业务逻辑中。当然编号重复之类的,肯定在业务逻辑中,但是如 年龄为数据,年龄>18且小于50,单据号必须是8位-10位,写在哪一层?
写在业务逻辑层,那要不停的抛异常,捕捉异常;或者要得到返回的错误号;写在窗体层,那代码就可以简单点。 大家是如何处理的?
写在业务逻辑层,那要不停的抛异常,捕捉异常;或者要得到返回的错误号;写在窗体层,那代码就可以简单点。 大家是如何处理的?
调试欢乐多
言之有理,但在界面层中还要不要判断呢?如果不要的话,那是不是就得捕捉异常了?
我的做法是要对此问题实施策略,要根据不同的需求分别制定在哪里验证.
最好写一个通用类,根据不同的Client端,它的表现形势也不一样,比如在逻辑层呼叫它,它只返回对错,在Winform中它也可以立即判定对错,在WEB它可以直接参与验证脚本的编写
大点的东西`肯定要往逻辑里面加
但是,如果 BusinessLayer 和UI部署在不同机器上,验证放在BusinessLayer,就会影响网络的交互量。
所以,这个问题需要综合权衡。