mvc模型和mvc架構的區別,mvc模型架構
Spring中的新名稱也太多了吧!IOC/DI/MVC/AOP/DAO/ORM...
對於剛剛接觸spring的我來說確實暈了頭!可是一但你完全掌握了一個概念,那麼它就會死心塌地的為你服務了。這可比女人忠誠多了。
在這裡我們來說侃下MVC吧!嗯!MVC設計模型和MVC架構之區別。
一組概念需要先理解,因為後面需要用:
架構:簡單的說架構就是一個藍圖,是一種設計方案,將客戶的不同需求抽象成為抽象組件,並且能夠描述這些抽象組件之間的通訊和調用。
架構:軟體架構是項目軟體開發過程中提取特定領域軟體的共性部分形成的體繫結構,不同領域的軟體項目有著不同的架構類型。架構不是現成可用的應用系 統。而是一個半成品,提供了諸多服務,開發人員進行二次開發,實現具體功能的應用系統。
設計模式:是一套被反覆使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結,它強調的是一個設計問題的解決方案。
首先來說說MVC設計模型:
1.定義:MVC 設計模型是一種使用 Model View Controller( 模型-視圖-控制器)設計建立 Web 應用程式的模式。
由上主謂賓可以很容易看出,mvc模型是一種用來寫web應用程式的樣式,也就是說只能寫web不能寫其它?
2.既然使用了 Model View Controller( 模型-視圖-控制器),那麼就很有必要來介紹一下該(模型-視圖-控制器)到底是怎樣的一個東西?
Model(模型):是應用程式中用於處理應用程式資料邏輯的部分。
通常模型對象負責在資料庫中存取資料。
View(視圖):是應用程式中處理資料顯示的部分。
通常視圖是依據模型資料建立的。
Controller(控制器):是應用程式中處理使用者互動的部分。
通常控制器負責從視圖讀取資料,控制使用者輸入,並向模型發送資料。
再來說說MVC架構:
1.MVC架構,它強制性的使應用程式輸入、處理和輸出分開。使用MVC應用程式被分成三個核心組件:模型、視圖、控制器。它們各自處理自己的任務。
由上可知,要使用MVC架構,則一定要遵守該架構的規則,它有它的強制性所在。聰明的讀者一看就知道,它所使用的三個核心組件其實都是來自MVC模型。
只不過在架構中讓他們彼此更加獨立了去處理各自的任務而已。
2.最典型的MVC就是JSP + servlet + javabean的模式。
3. 視圖:視圖是使用者看到並與之互動的介面。視圖主要有元素HTML ,Adobe Flash,XHTML,XML/XSL,WML等一些標識語言和Web services。
模型:模型表示企業資料和商務規則。
控制器:控
制器接受使用者的輸入並調用模型和視圖去完成使用者的需求,所以當單擊Web頁面中的超連結和發送HTML表單時,控制器本身不輸出任何東西和做任何處理。它只是接收請求並決定調用哪個模型構件去處理請求,然後再確定用哪個視圖來顯示返回的資料。
設計模型和架構的區別:(注意這裡首先討論的是總概念!)
先來看看網上給的區別,來自百度百科的:
在軟體生產中有三種層級的重用:內部重用(即在同一應用中能公用使用的抽象塊),代碼重用(即將通用模組組合成庫或工具集,以便在多個應用和領域都能使用),應用程式框架的重用(即為專用領域提供通用的或現成的基礎結構,以獲得最進階別的重用性)。
架構通常是代碼重用,而設計模式是設計重用(?設計重用怎麼來的?上下都沒它的定義,百科垃圾就在這裡。),架構則介於兩者之間。
設計模式是對在某種環境中反覆出現的問題以及解決該問題的方案的描述,它比架構更抽象;架構可以用代碼錶示,也能直接執行或複用,而對模式而言只有執行個體才能用代碼錶示;設計模式是比架構更小的元素,一個架構中往往含有一個或多個設計模式,架構總是針對某一特定應用領域,但同一模式卻可適用於各種應用。可以 說,架構是軟體,而設計模式是軟體的知識。
百科的回答往往缺乏嚴謹,我在MBR lib網站中看到它們將軟體重用分類為:產品重用/知識重用/環境重用。
架構是代碼重用,所以我們在使用架構的時候總是引入很多包。
架構是軟體,而設計模式是軟體的“知識”。所以模式是架構的基礎。
再回到MVC這個小概念上來:
根據架構和設計模式的大概念,我們應該可以知道MVC架構和MVC設計模式區別的一二了。
以我的理解,覺得MVC設計模式更像設計師手中的圖紙(圖紙上的東西往往更抽象),而MVC架構則更像是工程師以設計師的圖紙而建造的產品!
最終的產品也許比設計師原來的圖紙有所出入,有些功能有所增強,有些又會適當的減弱,以此來更加適應福士的需求和體驗!但是在整體上和本質上都是遵循設計師的構造的。
MVC設計模式就像建設房子的基礎(地基設計+結構設計+強弱電設計+消防設計+etc),而MVC架構則可在此基礎上根據需求構建的漂亮的成品房。
常見的架構和設計模型(注意這是大概念)
設計模式有哪些?
MVC、MTV、MVP、CBD、ORM等等;
架構有哪些?
C++語言的QT、MFC、gtk
Java語言的SSH 、SSI
php語言的 smarty(MVC模式)
python語言的django(MTV模式)等等;
引用: 架構+架構+設計模式;