MVC模式 - Model-View-Controller -(模型-視圖-控制器)


一、MVC(Model View Controller)

MVC是一種設計典范。它是用一種業務邏輯、數據與界面顯示分離的方法來組織代碼,將眾多的業務邏輯聚集到一個部件上,在需要改進和個性化定制界面及用戶交互的同時,不需要重新編寫業務邏輯,達到減少編碼的時間。

MVC開始時存在於桌面程序中的,M是指業務模型-V是指用戶界面-C是指控制器

二、頁面中MVC的作用

在於將M和V的實現代碼分離,從而使同一個程序可以使用不同的表現形式

V)view視圖:是指用戶看到並與之交互的界面

  比如由html元素組成的網頁界面,或者軟件的客戶端界面。MVC的好處之一在於他能為應用程序處理很多不用的視圖。在視圖中其實沒有真正的處理發生,它只是一個作為輸出數據並允許用戶操縱的方式。

M)model模型:是指模型表示業務規則

  在MVC的三個部件中,模型擁有最多的處理任務。被模型返回的數據是中立的,模型與數據格式無關,這樣一個模型能為多個視圖提供數據,由於應用與模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重復性。

C)Controller控制器

  是控制器接收用戶的輸入並調用模型和視圖去完成用戶的需求,控制其本身不輸出任何東西和任何處理。它只是接收請求並解決調用哪個模型構建去處理請求,然后再確認用哪個視圖來顯示返回的數據。

用戶首先在界面中進行人機交互,然后請求發送到控制器,控制器根據請求類型和請求的指令發送到相應的模型,模型可以與數據庫進行交互,進行增刪改查操作,完成之后,根據業務的邏輯選擇相應的視圖進行顯示,此時用戶獲得此次交互的反饋信息,用戶可以進行下一步交互,如循環。

三、MVC優缺點

1)優點

① 耦合性低:視圖層和業務層分離,這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼,同樣,一個應用的業務流程或者業務規則的改變只需要改動MVC的模型層即可。因為模型與控制器和視圖層相分離,所以很容易改變應用程序的數據層和業務層規則。

② 重用性高:MVC模式允許使用各種不用樣式的視圖來訪問同一個服務器端的代碼,因為多個視圖能共享一個模型,它包括任何WEB(HTTP)瀏覽器或者無線瀏覽器(WAP),比如,用戶可以通過電腦也可以通過手機來訂購某樣產品,雖然訂購的方式不一樣,但處理訂購產品的方式是一樣的。由於模型返回的數據沒有進行格式化,所以同樣的構建能被不同的界面使用。

③ 部署快,生命周期成本低:MVC使開發和維護用戶接口的技術含量降低。使用MVC模式使開發時間得到相當大的縮減,它使程序員(Java開發人員)集中精力於業務邏輯,界面程序員(HTML和JSP開發人員)集中精力於表現形式上。

④ 可維護性高:分離視圖層和業務邏輯層也使得WEB應用更容易與維護和修改。

2)缺點

① 調試困難:因為模型和視圖要嚴格的分離,這樣也給調試應用程序帶來了一定的困難,每個構件在使用之間都需要經過徹底的測試。

② 不適合小型,中等規模的應用程序:在一個中小型的程序中,強制性的使用MVC進行開發,往往會花費大量時間,並且不能體現MVC的優勢,同時會使開發變得繁瑣。

③ 增加系統結構和實現的復雜性:對於簡單的界面,嚴格遵循MVC,使模型、視圖、控制器分離,會增加結構的復雜性,並且可能產生過多的更新操作,降低運行效率。

④ 視圖與控制器間的過於緊密的連接並且降低了視圖對模型數據的訪問:視圖與控制器是相互分離,但卻是聯系緊密的部件,視圖沒有控制器的存在,其應用是很有限的,反之亦然,這樣就徹底妨礙了它們的獨立重用。

依據模型操作接口的不同,視圖可能需要多次調用才能獲得足夠的顯示數據。對未變化數據的不必要的頻繁訪問,也將損害操作性能


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM