當前位置:編程學習大全網 - 編程語言 - Java中的MVC是什麽?

Java中的MVC是什麽?

首先,什麽是MVC

模型:模型層

視圖:視圖層

控制器:控制層

MVC(模態視圖控制器)最初存在於桌面程序中,其中M是指數據模型,V是指用戶界面,C是控制器。使用MVC的目的是將M和V的實現代碼分開,讓同壹個程序可以使用不同的表現形式。比如壹批統計數據可以分別用柱狀圖和餅狀圖來表示。C的目的是保證M和V的同步,壹旦M發生變化,V也要同步更新。

模型-視圖-控制器(Model-View-Controller,MVC)是PARC施樂公司在20世紀80年代代表編程語言Small Talk-80發明的壹種軟件設計模式,至今仍被廣泛使用。近年來,它被推薦為Sun的J2EE平臺的設計模式,並受到越來越多使用ColdFusion和PHP的開發人員的歡迎。模型-視圖-控制器模式是壹個有用的工具箱,它有很多優點,但也有壹些缺點。

第二,MVC是如何工作的

MVC是壹種設計模式,它將應用程序的輸入、處理和輸出強行分離。使用MVC的應用程序分為三個核心組件:模型、視圖和控制器。他們各自處理自己的任務。

視角

視圖是用戶看到並與之交互的界面。對於舊的Web應用程序,視圖是由HTML元素組成的界面。在新的Web應用中,HTML仍然在視圖中扮演著重要的角色,但壹些新技術也相繼出現,包括Macromedia Flash,壹些標記語言如XHTML,XML/XSL,WML和Web services。

如何處理應用程序的界面變得越來越具有挑戰性。MVC的壹個很大的好處是它可以為妳的應用程序處理許多不同的視圖。事實上,視圖中並沒有真正的處理,無論數據是在線存儲還是員工列表,作為視圖,它只是壹種輸出數據並允許用戶操縱數據的方式。

模型

該模型表示企業數據和業務規則。在MVC的三個組件中,模型的處理任務最多。例如,它可能使用EJB和ColdFusion組件等組件對象來處理數據庫。模型返回的數據是中性的,即模型與數據格式無關,這樣壹個模型可以為多個視圖提供數據。因為應用於模型的代碼只需編寫壹次就可以被多個視圖重用,所以減少了代碼的重復。

控制器

控制器接受用戶的輸入,並調用模型和視圖來滿足用戶的需求。所以當點擊網頁中的超鏈接,發送HTML表單時,控制器本身不輸出任何東西,也不做任何事情。它只是接收請求並決定調用哪個模型組件來處理請求,然後決定使用哪個視圖來顯示模型處理返回的數據。

現在我們總結壹下MVC的處理過程。首先,控制器接收用戶的請求,並決定應該調用哪個模型進行處理。然後模型使用業務邏輯處理用戶的請求並返回數據。最後,控制器用相應的視圖格式化模型返回的數據,並通過表示層呈現給用戶。

第三,為什麽要用MVC?

大多數Web應用程序都是用ASP、PHP或CFML這樣的過程化語言創建的。他們將數據庫查詢語句等數據層代碼與HTML等表示層代碼混合在壹起。有經驗的開發人員會將數據從表示層中分離出來,但這通常不容易做到,它需要仔細的規劃和不斷的試錯。MVC從根本上迫使他們分離。雖然構建MVC應用需要壹些額外的工作,但是它給我們帶來的好處是毋庸置疑的。

首先,最重要的壹點是,多個視圖可以共享壹個模型。正如我提到的,有越來越多的方法來訪問您的應用程序。對此,解決方案之壹是使用MVC,無論妳的用戶想要Flash界面還是WAP界面;它們可以用模型來處理。因為已經將數據和業務規則從表示層中分離出來,所以可以最大程度地重用代碼。

因為模型返回的數據沒有被格式化,所以同壹個組件可以被不同的接口使用。比如很多數據可能用HTML表示,但也可能用Macromedia Flash和WAP表示。該模型還具有狀態管理和數據持久化處理的功能。例如,基於會話的購物車和電子商務流程也可以被Flash網站或無線網絡應用程序重用。

因為模型是自包含的,並且與控制器和視圖分離,所以很容易改變應用程序的數據層和業務規則。如果妳想把妳的數據庫從MySQL移植到Oracle,或者把妳的基於RDBMS的數據源改成LDAP,只要換個模型就行了。壹旦您正確地實現了模型,不管您的數據是來自數據庫還是LDAP服務器,視圖都會正確地顯示它們。因為使用MVC的壹個應用的三個組件是相互對立的,改變其中壹個不會影響到另外兩個,所以妳可以按照這個設計思路構造壹個好的松耦合組件。

對於我來說,控制器還提供了壹個好處,就是可以用控制器來連接不同的模型和視圖,滿足用戶的需求,這樣控制器就可以為構造應用提供壹個有力的手段。給定壹些可重用的模型和視圖,控制器可以根據用戶的需求選擇模型進行處理,然後選擇視圖將處理結果顯示給用戶。

第四,MVC的缺點

MVC的缺點是不容易完全理解MVC,因為它沒有明確的定義。使用MVC需要仔細規劃。由於其內部原理復雜,需要壹定時間思考。

妳將不得不花費相當多的時間去思考如何將MVC應用到妳的應用程序中,同時,調試妳的應用程序將會很困難,因為模型和視圖應該是嚴格分離的。每個組件在使用前都需要徹底測試。壹旦您的組件已經過測試,您就可以毫無顧忌地重用它們。

根據我個人的經驗,既然我們把壹個應用分成三個部分,那麽很明顯使用MVC也意味著妳會比以前管理更多的文件。看起來我們的工作量增加了,但是請記住,和它能給我們帶來的好處相比,這根本不算什麽。

MVC不適合小型甚至中型的應用程序,花大量的時間把MVC應用到不是很大的應用程序上通常是得不償失的。

MVC的優點:MVC是創建軟件的好方法。

MVC設計模式是壹種很好的創建軟件的方式,它所倡導的壹些原則,比如內容和顯示的分離,可能更容易理解。但是,如果您想要隔離模型、視圖和控制器的組件,您可能需要重新考慮您的應用程序,尤其是應用程序的架構。如果妳願意接受MVC,並且有能力應對它帶來的額外工作和復雜性,MVC會讓妳的軟件在健壯性、代碼重用和結構上更上壹層樓。

希望對妳有幫助!~

  • 上一篇:肥城機器人編程大賽官網
  • 下一篇:Java網絡編程從入門到精通(6):使用getCanonicalHostName方法獲得主機名
  • copyright 2024編程學習大全網