model的職責
模型model – 管理大部分的業務邏輯和所有的資料庫邏輯
資料、行為、方法是model的主要內容。
實際工作中,model是mvc中**量最大。
model是邏輯最複雜的地方,因為應用的業務邏輯也要在這裡表示。
注意將model與controller區分開。
model是處理業務方面的邏輯,controller只是簡單的協調model和view之間的關係。
只要是與業務有關的,就該放在model裡面。
資料校驗、public常量和變數,都應該放在model層,
也就是說,有可能被重複使用的屬性或方法,都應該放在model層,一次定義,到處使用。
model不應該訪問request、session以及其他環境資料,這些應該由controller注入。
好的設計,應該是胖model,瘦controller。
view的職責
檢視view – 負責渲染資料,通過html方式呈現給使用者
view就是負責顯示。
一切與顯示介面無關的東西,都不應該出現在view裡面。
view 中一般不應該出現複雜的判斷語句,以及複雜的運算過程。
可以有簡單的迴圈語句、格式化語句。
對於php的web應用而言,html是view中的主要內容。
view應該從不呼叫model的寫方法。
也就是說,view只從model中讀取資料,但不改寫model。
所以我們說,view和model是老死不相往來的。
而且,view中不直接訪問get
和_get和
get
和_post,應該由controller傳遞給view。
此外,view一般沒有任何準備資料處理的內容,如查詢資料庫等。
這些一般是放在controller裡面,並以變數的形式傳給檢視。
也就是說,檢視裡面要用到的資料,就是乙個變數。
controller的職責
控制器controller - 負責響應使用者請求、管理模型和檢視中的通訊
對於controller,主要是響應使用者請求,決定使用什麼檢視,需要準備什麼資料用來顯示。
因此,對於request的訪問**,應該放在controller裡面,比如get
、_get、
get
、_post等。
controller應該僅限於獲取使用者請求資料,不應該對資料有任何操作或預處理,這應該放在 model 裡面。
對於資料的寫操作,要呼叫model類的方法完成。
對於使用者請求的響應,要呼叫檢視渲染。
此外,一般不要有html**等其他表現層的東西,這應該是屬於view的內容。
MVC架構的職責劃分
模型 檢視 控制器 mvc 是一種設計框架 設計模式 mvc 的目標是將業務邏輯從使用者介面的考慮中分離。這樣,開發者就可以更容易地改變每一部分而不會影響其他。在 mvc 中,view 可能由 jsp 實現 controller 是乙個 servlet,現在一般用 struts 實現 model 則...
mvc 職能劃分 MVC架構的職責劃分原則
最近負責乙個專案,用了 但是隨著對業務邏輯理解的深入,才開始意識到問題的嚴重。我錯誤地理解了 mvc 中的 controller,想當然地根據以往的經驗,把所有的業務邏輯都放在 controller 的 action 中去實現。於是,每乙個 controller 的 都上千行,越來越臃腫。最後,我下...
MVC架構的職責劃分原則
mvc設計原則 模型 檢視 控制器 mvc 是一種設計框架 設計模式 mvc 的目標是將業務邏輯從使用者介面的考慮中分離。這樣,開發者就可以更容易地改變每一部分而不會影響其他。在 mvc 中 model 代表資料和業務規則 view 包含了使用者介面元素,例如文字,表單等 controller 則管...