有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java MVC验证问题

我今天刚刚开始学习MVC模式(对于gui应用程序,而不是web),并对数据验证应该在哪里进行提出了一些问题

从我所读到的内容来看,似乎大多数人都在说,所有的验证都应该在控制器上进行,而模型应该只保存数据的状态。然而,在某些情况下,在模型中进行验证似乎更有意义

例如,假设客户端从gui更改要连接到的服务器的ipv4地址。我们希望验证这实际上是一个ipv4地址,而不仅仅是随机字符。如果ip地址有效,则我们希望将模型中的数据更改为新的ip地址,如果无效,则希望视图显示错误(或其他内容)

如果您在控制器中进行了验证,那么如果将来您决定使用不同的控制器/视图(因为从我可以看出,它们紧密耦合在一起),您必须确保在两个控制器中都包含相同的验证代码,因此必须管理两段相同的代码。这当然比只管理一段代码更容易出现bug,比如验证是在模型中完成的

我应该这样做吗?还是我缺少了在控制器中执行更合理的操作?或者应该在模型中处理一些数据,而在控制器中处理一些数据

谢谢


共 (1) 个答案

  1. # 1 楼答案

    我想在模型上,验证总是必要的。有时,如果视图中也有这样的内容,那么用户就不允许输入字段要求之外的内容。不管怎样,像IP地址验证这样的通用验证使它成为一种全局/静态/实用的方法,不仅在视图和模型中,而且在几个不同的模型中都可以使用。有时它甚至可以在客户端的视图组件和服务器组件之间共享,就像在GWT应用程序中一样