前言
框架是用來軟件設(shè)計進行分工的沈条;設(shè)計模式是小巧的需忿,對具體問題提出解決方案,以提高代碼復(fù)用濾蜡歹,提高耦合性屋厘。
1、MVC的概念
MVC模式(Model–view–controller)是軟件工程中的一種軟件架構(gòu)模式月而,把軟件系統(tǒng)分為三個基本部分:模型(Model)汗洒、視圖(View)和控制器(Controller)。
2景鼠、MVC的組成
控制器(Controller)- 負(fù)責(zé)轉(zhuǎn)發(fā)請求仲翎,對請求進行處理。
視圖(View) - 界面設(shè)計人員進行圖形界面設(shè)計铛漓。
模型(Model) - 程序員編寫程序應(yīng)有的功能(實現(xiàn)算法等等)溯香、數(shù)據(jù)庫專家進行數(shù)據(jù)管理和數(shù)據(jù)庫設(shè)計(可以實現(xiàn)具體的功能)。
3浓恶、組件的互動
將應(yīng)用程序劃分為三種組件玫坛,模型 - 視圖 - 控制器(MVC)設(shè)計定義它們之間的相互作用。
模型(Model)用于封裝與應(yīng)用程序的業(yè)務(wù)邏輯相關(guān)的數(shù)據(jù)以及對數(shù)據(jù)的處理方法包晰∈疲“ Model ”有對數(shù)據(jù)直接訪問的權(quán)力,例如對數(shù)據(jù)庫的訪問伐憾∶愠眨“Model”不依賴“View”和“Controller”,也就是說树肃, Model 不關(guān)心它會被如何顯示或是如何被操作蒸矛。但是 Model 中數(shù)據(jù)的變化一般會通過一種刷新機制被公布。為了實現(xiàn)這種機制胸嘴,那些用于監(jiān)視此 Model 的 View 必須事先在此 Model 上注冊雏掠,從而,View 可以了解在數(shù)據(jù) Model 上發(fā)生的改變劣像。(比較:觀察者模式(軟件設(shè)計模式))
視圖(View)能夠?qū)崿F(xiàn)數(shù)據(jù)有目的的顯示(理論上乡话,這不是必需的)。在 View 中一般沒有程序上的邏輯耳奕。為了實現(xiàn) View 上的刷新功能绑青,View 需要訪問它監(jiān)視的數(shù)據(jù)模型(Model)诬像,因此應(yīng)該事先在被它監(jiān)視的數(shù)據(jù)那里注冊。
控制器(Controller)起到不同層面間的組織作用闸婴,用于控制應(yīng)用程序的流程颅停。它處理事件并作出響應(yīng)÷尤“事件”包括用戶的行為和數(shù)據(jù) Model 上的改變。
4纸肉、MVC的優(yōu)點與缺點
優(yōu)點:一溺欧,易于理解,技術(shù)含量不高柏肪。便于開發(fā)與維護姐刁。二,耦合性不高烦味,表現(xiàn)層與業(yè)務(wù)層分離聂使,有利于開發(fā)。
缺點:沒有明確定義谬俄,完全理解很困難柏靶。開發(fā)MVC項目,將MVC模式運用其中溃论,Model和View嚴(yán)格分離困難屎蜓。其次,MVC模式將一個應(yīng)用程序分成3個部件钥勋,對于小規(guī)模項目炬转,反而會帶來更多的工作量以及復(fù)雜性。
部分來源:維基百科:zh.wikipedia.org/wiki/MVC