前言
框架是用來軟件設(shè)計進行分工的;設(shè)計模式是小巧的,對具體問題提出解決方案,以提高代碼復(fù)用濾,提高耦合性。
1、MVC的概念
MVC模式(Model–view–controller)是軟件工程中的一種軟件架構(gòu)模式,把軟件系統(tǒng)分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。
2、MVC的組成
控制器(Controller)- 負責轉(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嚴格分離困難。其次,MVC模式將一個應(yīng)用程序分成3個部件,對于小規(guī)模項目,反而會帶來更多的工作量以及復(fù)雜性。
部分來源:維基百科:zh.wikipedia.org/wiki/MVC