我在某处读到,我应该在我的BLL和UI中执行验证。是这样的吗?我应该如何处理错误/异常?
我正在创建一个应用程序来管理我们的客户数据。如果客户端没有附加任何项目,则用户可以删除该客户端。BLL中的sub如下:
Public Shared Sub DeleteClient(ByVal clientsID As Integer)
Dim clientDataAccessLayer As New ClientDAO
clientDataAccessLayer.DeleteClient(clientsID)
End Sub我已经在检查UI了,如果客户端有任何项目,我不会调用这个sub,但是我应该在这个sub中添加一些验证吗?我应该怎么做?抛出异常还是干脆不让它运行?
发布于 2011-05-23 19:06:42
是。您应该在这个sub (bll)中添加一些验证,并抛出一个异常,您的UI应该处理这个异常。
这看起来似乎违反了DRY原则(因为您正在重复逻辑以停止UI上的选项),但是业务层应该始终保持数据完整性。例如,如果您向应用程序引入了不同的UI或web服务,则数据完整性保持不变。
发布于 2011-05-23 19:09:19
我在某处读到,我应该在我的BLL和UI中执行验证。是这样的吗?我应该如何处理错误/异常?
您的异常限制应该只在表示层中完成。原因-假设您有Presentatin/DAL/BLL。在实现异常时,到处处理都会导致性能问题。而另一方面,在表示层实现异常处理将导致异常自动出现在调用函数的catch块中
只有在对数据库结果进行验证检查的情况下,才应在BLL中进行验证。
https://stackoverflow.com/questions/6096314
复制相似问题