MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典範,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯彙集到一個部件裏面,在改進和個性化定製界面及用戶交互的同時,不須要從新編寫業務邏輯。MVC被獨特的發展起來用於映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。
html
小編點睛:架構,主要仍是採用封裝(分層)的思想,來下降耦合度,從而使咱們的系統更加的靈活,擴展性更好。web
Model(模型)是應用程序中用於處理應用程序數據邏輯的部分。數據庫中存取數據。
View(視圖)是應用程序中處理數據顯示的部分。一般控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據數據庫
小編點睛:
設計模式
(1)增長了系統結構和實現的複雜性。架構
對於簡單的界面,嚴格遵循MVC,使模型、視圖與控制器分離,會增長結構的複雜性,並可能產生過多的更新操做,下降運行效率。
(2)視圖與控制器間的過於緊密的鏈接。框架
視圖與控制器是相互分離,但確實聯繫緊密的部件,視圖沒有控制器的存在,其應用是頗有限的,反之亦然,這樣就妨礙了他們的獨立重用。
(3)視圖對模型數據的低效率訪問。ide
依據模型操做接口的不一樣,視圖可能須要屢次調用才能得到足夠的顯示數據。對未變化數據的沒必要要的頻繁訪問,也將損害操做性能。
(4) 目前,通常高級的界面工具或構造器不支持MVC架構。工具
改造這些工具以適應MVC須要和創建分離的部件的代價是很高的,從而形成使用MVC的困難
性能
小編點睛:根據MVC的優缺點,咱們知道,對於開發存在大量用戶界面,而且業務邏輯複雜的大型應用程序,MVC將會使你的軟件在健壯性、代碼重用和結構方面上一個新的臺階。儘管在最初構建MVC框架時會花費必定的工做量,但從長遠角度看,它會大大提升後期軟件開發的效率。ui
因此咱們在具體適用時,要綜合考慮其適用範圍,
小編點睛:
小編點睛: 二、內部工做原理圖
小編點睛:上邊這張圖是MVC的處理過程:三、小例子 (1)先在model層寫一個Dog實體類
(2)先在controller層寫相應的代碼
(3)最後在view層顯示數據
(4)運行效果圖