1

将输入检查从模型中分离出来,并通过控制器进行处理,是否是一种很好的做法?如果是这样,从MVC或DDD的角度来看,这怎么可能呢?解耦模型和输入检查

回答

2

这是一个很好的做法来执行UI验证。

E.g.如果您的域对象需要日期时间,则应用程序的UI部分确保它将从用户接收正确的字符串,并将其解析为日期时间并将其传递给域对象,这是正确的。

不好的例子:UI部分验证银行账户是否有足够的转账资金。

但是 - 无法给出任何提示如何正确地实现这种验证在框架中您正在使用(我不使用Java)。

只是不要把它放在控制器中。这不是管制员的责任。

+0

感谢您的反馈Arnis。因此,任何解析或匹配都可以直接在UI中完成。关于银行账户的例子,这听起来像是可以变成“服务”(DDD)的东西。至于在MVC上下文中的验证,发布在这个链接上的回复是一个有趣的阅读。 http://discuss.joelonsoftware.com/default.asp?design.4.354410.6 – 2010-07-31 15:51:44

+0

@詹姆斯需要域服务通常是一个迹象表明你的域中缺少聚合根。关于验证的另一个有趣的阅读 - http://www.lostechies.com/blogs/jimmy_bogard/archive/2009/02/15/validation-in-a-ddd-world.aspx – 2010-08-01 08:52:21