1

比方說,我有一個方法RegisterUser(),它包含更多的代碼,而不僅僅是將一條記錄插入數據庫。例如,可能有角色,位置數據等。或者我有一個方法SendInboxMessage(),它向CMS站點的用戶發送收件箱消息,例如...請記住,SendInboxMessage不僅僅是與「收件箱」表。它需要與用戶對象,消息對象,收件箱文件夾對象等進行交互。再次,在這裏舉一個例子來說明一些複雜的對象。將複雜操作放在MVC框架中的何處?

這樣的事情會發生在傳統的MVC上嗎?

(注:這不是語言特定的尋找更加廣闊的答案在這裏。)

謝謝!

回答

2

這樣的事情會發生在傳統的MVC上嗎?

MVC是一種構造應用程序表示層的方法。 但我猜你正在談論古典商業邏輯。 這應該是業務層的一部分,而不是表示層的一部分。 您描述的業務邏輯通常會進入域服務。 域服務基本上只是一個無狀態的對象,方法通過接口(契約)暴露給表示層。 域服務的方法通常依賴於數據存儲庫或其他域服務,並描述了comlpex事務操作。

+0

謝謝弗蘭克。你有什麼樣的例子或文獻可以閱讀更多關於這方面的知識嗎?例如。什麼是「按合同揭露方法」的意思 – Ricky 2014-10-09 14:59:59

+0

沒問題。 Martin Fowler在他的主頁上提供了一些關於不同GUI架構模式的漂亮文章: http://martinfowler.com/eaaDev/uiArchs.html。 – Frank 2014-10-10 06:47:24

+0

「按契約公開方法」表示 1:表示層需要域服務方法。 2:來自表示層的方法調用必須解決(技術)接口,並且可能必須滿足特定的前置和後置條件。 – Frank 2014-10-10 07:11:25