前一陣子我問了here,因爲我對這個話題很陌生,所以在理解MVC方面有所幫助。我認爲自己對此有相當的理解,這在我最近撰寫關於這個主題的blog post中有記錄。我的理解基本上歸結爲:MVC:模型和實體對象是否將概念分開?
控制器:確定完成請求需要做什麼,並根據需要利用需要收集/修改的任何模型。它基本上是一個給定過程的管理者。
觀看次數:僅限演示。一旦控制器收集到需要的東西,它會創建一個特定類型的視圖,將它傳遞給信息,並說「顯示給用戶,但是你這樣做」。
Models:應用程序的行爲。當控制器要求它提取或修改某些內容時,它知道如何去做。它也知道要觸發其他模型來完成相關任務(在我的理解中,當一個模型試圖在StackOverflow上「投票贊成」時,該模型知道要問是否也應該授予徽章,因爲控制器沒有需要關心)。
我的問題,假設所有這些都或多或少準確,是實體對象進來的地方?模型和實體是同一件事,每個對象知道如何保留自己的數據,或者實體是一個獨立的概念,它們獨立存在並在整個應用程序中使用?
我的錢在後者上,因爲這將允許模型獨立行事,而所有三層(模型,視圖和控制器)都可以利用實體根據需要傳遞數據。而且,對象和數據庫持久性看起來應該分開。
說實話,我對MVC的瞭解越多,我就越感到困惑。我準備好採用核心概念(單獨的邏輯演示),並以任何正確的方式與它一起運行,而不必太擔心「MVC」標籤。
對不起,但我不太清楚你在說什麼。你能改述一下嗎? – AgentConundrum 2010-09-29 07:56:24
真的很抱歉因爲我的英語...:P – 2010-09-29 07:57:50
不用擔心。那麼,你是說模型和實體是一回事?我對此感到有點驚訝,因爲(正如我在我的問題中所說),似乎實體本身不應該擔心自己的持久性。 – AgentConundrum 2010-09-29 08:06:56