2008-11-20 82 views
45

我已經閱讀了幾個有關MVC的內容,但我仍不明白什麼時候應該使用它們,什麼時候不應該使用它們。我正在尋找清楚的例子,如「如果你正在開發這個,那麼你應該使用MVC,像這樣」和「如果你正在開發這個,你不應該使用MVC。大多數我見過的例子依賴於已經實現了一切的複雜框架,你必須學習框架並使用它來理解實際發生的事情。對許多程序員,措辭如「 UI的業務邏輯」聽起來像是營銷方面—例如,將「相反視圖中直接綁定到演示模式」在this post.我在哪裏可以找到MVC的清晰示例?

使用我知道的因爲MVC是一個概念,每個人都覺得他們最瞭解它,但沒有人真正知道如何使用它,因爲可能涉及很多變量,每個人都可以對如何使用它有不同的看法將一個項目分解成模型,視圖和控制器。這裏有很多理論,但很少有明確的例子。我所尋找的並不是「最好」的做法,所以這不應該被認爲是主觀的;我正在尋找不同的簡單實現,這將允許我自己決定哪些是最好的方法。

簡而言之:什麼是良好的在線資源,它提供了在各種情況下使用MVC的贊成和反對意見,並提供了明確的例子來幫助讀者理解這個概念?

+0

這是一個很好的例子,我正在尋找:http://toys.lerdorf.com/archives/38-The- no-framework-PHP-MVC-framework.html – Tom 2008-11-20 10:06:45

+1

這裏有一個很好的例子:http://www.c2.com/cgi-bin/wiki?ModelViewController – Tom 2008-11-20 10:10:05

回答

13

IMO,最好的例子是用代碼和/或起動器的試劑盒。

Rob Conery有一個great number of posts,它解釋瞭如何使用ASP.NET MVC創建一個MVC站點。其中每一個都有一個video tutorial,它貫穿了博客文章的討論。

官方網站ASP.NET MVC也有一些video posts,入門套件(hereherehere)和extra sauce幫助。

IMO,MVC是去網站的方式。沒有噴涌出所有的行話和營銷話語,它真的把你的代碼分解成好的,單獨的和定義的部分。每個部分都可以進行測試......這確實有助於保護開發過程,因爲您知道觸摸系統的一部分不會破壞另一部分(因爲測試全部在最新的更改之後通過),所以您可以放心。

其他博客,你應該檢查出:

1

我已經爲各種項目做了每一個這樣的事情。 在一個偉大的PHP腳本中編寫應用程序的所有內容(確定它是作爲一個剛剛增長的小PHP腳本開始的)。 使用最新的最大的Spring/Freemarker框架,其中我的5O行java代碼在XML和模板編碼的海洋中迷失了。

您可以在沒有框架的情況下執行MVC,並且在php中這可能是最簡單的方法。如果所有的導航代碼都在一個只有導航邏輯的腳本中,那麼你正在做MVC!

對於除QDP(快速髒頁面)之外的任何其他內容,我都會推薦使用某種MVC。想象一下,如果商家說「我可以擁有法語版本」或「優秀的程序,但我希望將數據存儲在xxxxx數據庫中」,您需要做些什麼。

0

通常很難將您的視圖邏輯與業務邏輯清晰地分開。 如果您閱讀了關於JSF & JSP示例的升技,您可以看到正在使用的MVC的清晰示例。完全從業務邏輯中分離出來。

如果您尋找關於MVC良好的信息我可以建議http://en.wikipedia.org/wiki/Model-view-controller

這是一個重要的話題,我真的很喜歡sepperating不同邏輯的想法。它可以幫助程序員和項目中的其他人員。

4

假設你的意思是MVC你會很難找到什麼比下面的60行的代碼更簡潔的網頁:

http://code.google.com/p/barebonesmvc-php/

特別要注意的是sendResponse的「模板方法」,它又主要由以下兩種方法調用組成:

applyRequestToModel

applyModelToView

相關問題