2013-03-06 28 views
1

我聽到很多意見,但是對於控制器中應該使用什麼類型的邏輯有一個通用規則?控制器應該採用什麼類型的邏輯? (MVC和Repository模式)

我使用知識庫進行數據訪問和更新,但是如何在控制器中更新動作方法中的模型參數(例如,FormCollection對象等),然後將其傳遞到存儲庫進行更新。

有沒有明確的禁忌?

感謝

+0

不,有很多爭議。最明智的是介於瘦身控制器和瘦身模式之間。沒有其他的辯論可以背後。 Google Skinny控制器瞭解更多信息。我的建議是將其移交給Stack Exchange的程序員論壇。他們會更容易接受它。 – 2013-03-06 18:40:37

+0

謝謝,我會有一個谷歌,聽說之前瘦的控制器 – 2013-03-06 19:10:31

回答

2

我通常設計的方式,使模型和視圖之間的解耦控制,使他們可以無視對方的存在。

問題在於定義模型的職責是什麼,以及對於界線這些問題,控制器的責任是什麼。沒有人會爭辯說堅持一個實體進入數據庫是控制器的一項任務,但是如果我們談論驗證,事情會變得更具爭議性。

對於輸入驗證,我個人的方法是在控制器端執行它,並假設/約束條件是實體在傳遞給模型時已經有效。這種趨勢受到一些MVC框架(即Struts)的鼓勵,該框架在控制器端提供了開箱即用的驗證,但是,例如,當您需要在不同的上下文中重新部署模型時(例如,一個Web服務),並且您的驗證規則在前一個控制器中連線。

我鼓勵你的研究,但有個人經驗的小建議:避免過多考慮。這種問題由於宗教戰爭和不同方法倡導者的毫無意義的固執而臃腫。在現實世界中,最終,所有這些設計問題都被困難的事實搞砸了,而且只需要15分鐘就可以完成一些工作,因爲副總裁在午餐時間之前就想要這樣做。

相關問題