MVC是一個架構,或者說是一個設計模式,它就是強制性使應用程序的輸入,處理和輸出分開。將一個應用程序分為三個部分:Model,View,Controller。
原理圖:

分析:
Model 模型(完成業務邏輯:由javaBean構成,在MVC的三個部件中,模型擁有最多的處理任務。例如它可能用象EJBs和javabean這樣的構件對象來處理數據庫。由於應用於模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重復性。)
View 視圖(就是負責跟用戶交互的界面。一般就是由HTML,css元素組成的界面,當然現在還有一些像js,ajax,flex一些也都屬於視圖層。 在視圖層里沒有真正的處理發生,之負責數據輸出,並允許用戶操縱的方式。MVC能為應用程序處理很多不同的視圖。 )
Controller 控制器(接收請求—>調用模型—>根據結果派發頁面並經過模型處理返回相應數據 )
--------------------------------------------------------------------------
優點:
1、分工明確(開發人員可以只關注整個結構中的其中某一層):使用MVC可以把數據庫開發,程序業務邏輯開發,頁面開發分開,每一層都具有相同的特征,方便以后的代碼維護。
它使程序員(Java開發人員)集中精力於業務邏輯,界面程序員(HTML和JSP開發人員)集中精力於表現形式上。
2、松耦合(可以降低層與層之間的依賴):視圖層和業務層分離,這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼,同樣,一個應用的業務流程或者業務規則的改變只需要改動MVC的模型層即可。
因為模型與控制器和視圖相分離,所以很容易改變應用程序的數據層和業務規則。
3、復用性高(利於各層邏輯的復用):像多個視圖能夠共享一個模型,不論你視圖層是用flash界面或是wap界面,用一個模型就能處理他們。將數據和業務規則從表示層分開,就可以最大化從用代碼。、
3、有利於標准化(有利於通過工程化、工具化產生管理程序代碼);
概括來說,分層式設計可以達至如下目的:分散關注、松散耦合、邏輯復用、標准定義。
缺點:
分層式結構也不可避免具有一些缺陷:
1、有時會導致級聯的修改。這種修改尤其體現在自上而下的方向。如果在表示層中需要增加一個功能,為保證其設計符合分層式結構,可能需要在相應的業務邏輯層和數據訪問層中都增加相應的代碼。
2、降低了系統的性能。這是不言而喻的。如果不采用分層式結構,很多業務可以直接造訪數據庫,以此獲取相應的數據,如今卻必須通過中間層來完成。
3、由於它沒有明確的定義,所以完全理解MVC並不是很容易。使用MVC需要精心的計划,由於它的內部原理比較復雜,所以需要花費一些時間去思考。
4、MVC並不適合小型甚至中等規模的應用程序,花費大量時間將MVC應用到規模並不是很大的應用程序通常會得不償失。
*如何改善:
第一個缺點,可以采用一些設計模式來到改善。
第二個缺點,可以通過系統的緩存機制來減小對性能的影響;