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