为什么人们说业务逻辑应该在服务器端代码(例如EJB)上实现,而不是在客户端应用程序代码上实现?
我想到的一个例子是基于EJB架构的业务对象验证。它真的必须委托给EJB吗?或者在将对象发送到服务器保存之前,在客户端运行它是否可以?
为什么人们说业务逻辑应该在服务器端代码(例如EJB)上实现,而不是在客户端应用程序代码上实现?
我想到的一个例子是基于EJB架构的业务对象验证。它真的必须委托给EJB吗?或者在将对象发送到服务器保存之前,在客户端运行它是否可以?
为了避免向服务器发送请求,验证可以在客户端完成。但是服务器也应该执行相同的验证。理想情况下,您可以在客户端和服务器端重用相同的类。
Translated:为了避免向服务器发送请求,验证可以在客户端完成。但是服务器也应该执行相同的验证。理想情况下,您可以在客户端和服务器端重用相同的类。
有两个原因。首先,您很可能会为多个客户端编写相同的业务逻辑,因此将其提取到服务器上是有意义的。其次,您很可能无法信任客户端,这意味着服务器验证是必不可少的。
通常客户端代码用于显示信息,而不是真正定义应用程序的功能。
主要是因为这样可以灵活地添加其他客户端,而无需进行奇怪的技巧(如复制/粘贴)
例如,假设您的客户端正在使用HTML,稍后您想要添加一个使用json的新客户端。
如果业务规则在客户端上,您将不得不将它们复制到新客户端。
现在,请不要混淆验证规则和其他规则。这些也必须放在客户端。