MVC模式

    MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的編寫,一種軟件設計典範,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯彙集到一個部件裏面,在改進和個性化定製界面及用戶交互的同時,不須要從新編寫業務邏輯。MVC被獨特的發展起來用於映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。MVC開始是存在於桌面程序中的,M是指數據模型,V是指用戶界面,C則是控制器,使用MVC的目的是將M和V的實現代碼分離,從而使同一個程序可使用不一樣的表現形式。好比一批統計數據能夠分別用柱狀圖、餅圖來表示。C存在的目的則是確保M和V的同步,一旦M改變,V應該同步更新。算法

    MVC是一個設計模式,它強制性的使應用程序的輸入、處理和輸出分開。使用MVC應用程序被分紅三個核心部件:模型、視圖、控制器。它們各自處理本身的任務。spring

    視圖是用戶看到並與之交互的界面。對老式的Web應用程序來講MVC模式圖,視圖就是由HTML元素組成的界面,在新式的Web應用程序中,HTML依舊在視圖中扮演着重要的角色,但一些新的技術已層出不窮。數據庫

    MVC好處是它能爲應用程序處理不少不一樣的視圖。在視圖中其實沒有真正的處理髮生,無論這些數據是聯機存儲的仍是一個僱員列表,做爲視圖來說,它只是做爲一種輸出數據並容許用戶操縱的方式。編程

    模型表示企業數據和業務規則。在MVC的三個部件中,模型擁有最多的處理任務。例如它可能用象EJBs和ColdFusion Components這樣的構件對象來處理數據庫,被模型返回的數據是中立的,就是說模型與數據格式無關,這樣一個模型能爲多個視圖提供數據,因爲應用於模型的代碼只需寫一次就能夠被多個視圖重用,因此增長了代碼的重複性。設計模式

    控制器接受用戶的輸入並調用模型和視圖去完成用戶的需求,因此當單擊Web頁面中的超連接和發送HTML表單時,控制器自己不輸出任何東西和作任何處理。它只是接收請求並決定調用哪一個模型構件去處理請求,而後再肯定用哪一個視圖來顯示返回的數據。緩存

    設計模式分爲三個部分,分別爲表現層、業務邏輯層、數據持久層。三個層次分工明確,共同組成了MVC模式。網絡

    表現層包含表示代碼、用戶交互GUI、數據驗證。業務邏輯層包含業務規則處理代碼,即程序中與業務相關專業算法、業務政策等等。該層用於執行業務流程和制定數據的業務規則。業務邏輯層主要面向業務應用,爲表示層提供業務服務。架構

    數據持久層包含數據處理代碼和數據存儲代碼。數據持久層住喲啊包括數據存取服務,負責與數據庫管理系統之間的通訊。三個層次的每一層在處理程序上有各自明確的任務,在功能實現上有清晰地區分,各層與其他層之間分離,可是各層之間存有相互通訊的接口。框架

    MVC有耦合性低、重用性高、生命週期成本低、部署快、可維護性高、有利於工程化管理等有點;可是也有沒有明肯定義、不適合小型,中等規模的應用程序、增長系統結構和實現的複雜性、視圖與控制器間的過於緊密的鏈接、試圖對模型數據的低效率訪問、通常高級的界面工具或構造器不支持模式等缺點。工具

    在 Struts 中,已經由一個Struts 體系結構名爲ActionServlet 的 Servlet充當控制器(Controller)的角色,根據描述模型、視圖、控制器對應關係的 struts-config.xml 的配置文件,轉發視圖(View)的請求,組裝響應數據模型(Model)。在 MVC 的 模型(Model)部分,常常劃分爲兩個主要子系統(系統的內部數據狀態與改變數據狀態的邏輯動做),這兩個概念子系統分別具體對應 Struts 裏的 ActionForm與 Action 兩個須要繼承實現超類。在這裏,Struts 能夠與各類標準的數據訪問技術結合在一塊兒,包括Enterprise Java Beans(EJB),JDBC 與JNDI。在 Struts 的視圖(View) 端,除了使用標準的JavaServer Pages(JSP)之外,還提供了大量的標籤庫使用,同時也能夠與其餘表現層組件技術(產品)進行整合,好比 Velocity Templates,XSLT等。經過應用 Struts 的框架,最終用戶能夠把大部分的關注點放在本身的業務邏輯(Action)與 映射關係的配置文件(struts-config.xml)中。

    spring包括:XML和基於註解的配置風格靈活的依賴注入;先進的面向方面編程的支持與基於代理和基於AspectJ的變種;支持聲明性事務,緩存的聲明,聲明確認,聲明格式;與常見的Java EE規範,如JDBC,JPA JTA和JMS工做的強大抽象;一流的支持,共同開源框架如Hibernate和石英;一個靈活的網絡框架構建RESTful MVC應用程序和服務端點;單元測試,集成測試以及豐富的測試設施。​

相關文章
相關標籤/搜索