【问题标题】:MVC validation questionMVC 验证问题
【发布时间】:2010-08-20 22:04:51
【问题描述】:

我今天刚开始学习 MVC 模式(针对 gui 应用程序,而不是 Web),并且有几个关于应该在哪里进行数据验证的问题。

根据我的阅读,似乎大多数人都在说所有验证都应该在控制器上进行,并且模型应该几乎只保存数据的状态。但是,在某些情况下,在模型中进行验证似乎更有意义。

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

如果您在控制器中进行了验证,那么如果将来您决定想要使用不同的控制器/视图(因为据我所知,它们非常紧密地耦合在一起),您必须确保在两个控制器中包含相同的验证码,因此必须管理两个相同的代码。这当然比只管理一段代码更容易出现错误,就像在模型中完成验证一样。

我应该这样做吗?还是我错过了在控制器中做这件事更有意义?还是应该在模型中处理一些数据,在控制器中处理一些数据?

谢谢

【问题讨论】:

标签: java model-view-controller desktop-application


【解决方案1】:

我想在模型中验证总是必要的。有时也可以在视图中显示,这样用户将被禁止输入除字段要求之外的其他内容。一种或另一种方式,像 IP 地址验证这样的通用验证非常适合成为全局/静态/实用程序方法,不仅在视图和模型中,而且在几个不同的模型中。有时它甚至可以在客户端的视图组件和服务器组件之间共享,例如在 GWT 应用程序中

【讨论】:

    猜你喜欢
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 2017-08-24
    • 2011-01-02
    相关资源
    最近更新 更多