MVC架構模式

來源:互聯網
上載者:User

標籤:evel   spring   資料   資料   c++   變化   構架   rac   自己的   

MVC架構模式

參考:

MVC架構_百度百科
https://baike.baidu.com/item/MVC%E6%A1%86%E6%9E%B6/9241230?fr=aladdin

MVC架構MVC全名是Model View Controller,是 模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟體設計典範,用一種商務邏輯、資料、介面顯示分離的方法組織代碼,將商務邏輯聚集到一個組件裡面,在改進和個人化定製介面及使用者互動的同時,不需要重新編寫商務邏輯。MVC被獨特的發展起來用於映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化使用者介面的結構中。 簡介MVC開始是存在於傳統型程式中的,M是指業務模型,V是指使用者介面,C則是控制器,使用MVC的目的是將M和V的實現代碼分離,從而使同一個程式可以使用不同的表現形式。比如一批統計資料可以分別用柱狀圖、餅圖來表示。C存在的目的則是確保M和V的同步,一旦M改變,V應該同步更新。[1-2] 模型-視圖-控制器(MVC)是Xerox PARC在二十世紀八十年代為程式設計語言Smalltalk-80發明的一種軟體設計模式,已被廣泛使用。後來被推薦為Oracle旗下Sun公司Java EE平台的設計模式,並且受到越來越多的使用ColdFusion和PHP的開發人員的歡迎。模型-視圖-控制器模式是一個有用的工具箱,它有很多好處,但也有一些缺點。 MVC 編程模式編輯MVC 是一種使用 MVC(Model View Controller 模型-視圖-控制器)設計建立 Web 應用程式的模式:[1] 
  • Model(模型)表示應用程式核心(比如資料庫記錄列表)。
  • View(視圖)顯示資料(資料庫記錄)。
  • Controller(控制器)處理輸入(寫入資料庫記錄)。
MVC 模式同時提供了對 HTML、CSS 和 JavaScript 的完全控制。Model(模型)是應用程式中用於處理應用程式資料邏輯的部分。
  通常模型對象負責在資料庫中存取資料。View(視圖)是應用程式中處理資料顯示的部分。
  通常視圖是依據模型資料建立的。Controller(控制器)是應用程式中處理使用者互動的部分。
  通常控制器負責從視圖讀取資料,控制使用者輸入,並向模型發送資料。MVC 分層有助於管理複雜的應用程式,因為您可以在一個時間內專門關注一個方面。例如,您可以在不依賴商務邏輯的情況下專註於視圖設計。同時也讓應用程式的測試更加容易。MVC 分層同時也簡化了分組開發。不同的開發人員可同時開發視圖、控制器邏輯和商務邏輯。 架構內容MVC指MVC模式的某種架構,它強制性的使應用程式的輸入、處理和輸出分開。使用MVC應用程式被分成三個核心組件:模型、視圖、控制器。它們各自處理自己的任務。 最典型的MVC就是JSP + servlet + javabean的模式

 

區別架構和設計模式的區別有很多程式員往往把架構模式和設計模式混淆,認為MVC是一種設計模式。實際上它們完全是不同的概念。[7] 架構、設計模式這兩個概念總容易被混淆,其實它們之間還是有區別的。架構通常是代碼重用,而設計模式是設計重用,架構則介於兩者之間,部分代碼重用,部分設計重用,有時分析也可重用。在軟體生產中有三種層級的重用:內部重用,即在同一應用中能公用使用的抽象塊;代碼重用,即將通用模組組合成庫或工具集,以便在多個應用和領域都能使用;應用程式框架的重用,即為專用領域提供通用的或現成的基礎結構,以獲得最進階別的重用性。架構與設計模式雖然相似,但卻有著根本的不同。設計模式是對在某種環境中反覆出現的問題以及解決該問題的方案的描述,它比架構更抽象;架構可以用代碼錶示,也能直接執行或複用,而對模式而言只有執行個體才能用代碼錶示;設計模式是比架構更小的元素,一個架構中往往含有一個或多個設計模式,架構總是針對某一特定應用領域,但同一模式卻可適用於各種應用。可以說,架構是軟體,而設計模式是軟體的知識。 架構模式有哪些? MVC、MTV、MVP、CBD、ORM等等;架構有哪些?C++語言的QT、MFC、gtk,Java語言的SSH 、SSI,php語言的 smarty(MVC模式),python語言的django(MTV模式)等等 設計模式有哪些? 原廠模式、適配器模式、策略模式等等 簡而言之:架構是大智慧,用來對軟體設計進行分工;設計模式是小技巧,對具體問題提出解決方案,以提高代碼複用率,降低耦合度。  常見架構 StrutsStruts是Apache軟體基金下Jakarta項目的一部分。Struts架構的主要架構設計和開發人員是Craig R.McClanahan。Struts 是Java Web MVC架構中不爭的王者。經過長達九年的發展,Struts已經逐漸成長為一個穩定、成熟的架構,並且佔有了MVC架構中最大的市場份額。但是Struts某些技術特性上已經落後於新興的MVC架構。面對Spring MVC、Webwork2這些設計更精密,擴充性更強的架構,Struts受到了前所未有的挑戰。但站在產品開發的角度而言,Struts仍然是最穩妥的選擇。Struts有一組相互協作的類(組件)、Servlet以及jsp tag lib組成。基於struts構架的web應用程式基底本上符合JSP Model2的設計標準,可以說是MVC設計模式的一種變化類型。根據上面對framework的描述,很容易理解為什麼說Struts是一個web framework,而不僅僅是一些標記庫的組合。但 Struts 也包含了豐富的標記庫和獨立於該架構工作的公用程式類。Struts有其自己的控制器(Controller),同時整合了其他的一些技術去實現模型層(Model)和視圖層(View)。在模型層,Struts可以很容易的與資料訪問技術相結合,包括EJB,JDBC和Object Relation Bridge。在視圖層,Struts能夠與JSP, Velocity Templates,XSL等等這些展示層組件相結合。[8 SpringSpring實際上是Expert One-on-One J2EE Design and Development 一書中所闡述的設計思想的具體實現。在One-on-One 一書中,Rod Johnson倡導J2EE實用主義的設計思想,並隨書提供了一個初步的開發架構實現(interface21 開發包)。而Spring 正是這一思想的更全面和具體的體現。Rod Johnson 在interface21 開發包的基礎之上,進行了進一步的改造和擴充,使其發展為一個更加開放、清晰、全面、高效的開發架構。Spring是一個開源架構,由Rod Johnson建立並且在他的著作《J2EE設計開發編程指南》裡進行了描述。它是為瞭解決公司專屬應用程式開發的複雜性而建立的。Spring使使用基本的JavaBeans來完成以前只可能由EJB完成的事情變得可能了。然而,Spring的用途不僅限於伺服器端的開發。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。簡單來說,Spring是一個輕量的控制反轉和面向切面的容架構。當然,這個描述有點過於簡單。但它的確概括出了Spring是做什麼的。[8]  ZFZend Framework(簡寫ZF)是由 Zend 公司支援開發的完全基於 PHP5 的開源PHP開發架構,可用於開發 Web 程式和服務,ZF採用 MVC(Model–View-Controller) 架構模式來分離應用程式中不同的部分方便程式的開發和維護。(MVC架構的詳細使用及其相關具體操作可以閱讀參考資料:[8]  或者擴充閱讀第二,三,四條。) .NET.NET MVC[9]  是微軟官方提供的以MVC模式為基礎的.NET Web應用程式(Web Application)架構,它由Castle的MonoRail而來(Castle的MonoRail是由java而來),目前最新版本是.N 4.5。[10]  

MVC架構模式

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.