對於剛剛接觸spring的我來講確實暈了頭!但是一但你徹底掌握了一個概念,那麼它就會死心塌地的爲你服務了。php
在這裏咱們來講侃下MVC吧!嗯!MVC設計模型和MVC框架之區別。java
一組概念須要先理解,由於後面須要用:python
架構:簡單的說架構就是一個藍圖,是一種設計方案,將客戶的不一樣需求抽象成爲抽象組件,而且可以描述這些抽象組件之間的通訊和調用。web
框架:軟件框架是項目軟件開發過程當中提取特定領域軟件的共性部分造成的體系結構,不一樣領域的軟件項目有着不一樣的框架類型。框架不是現成可用的應用系 統。而是一個半成品,提供了諸多服務,開發人員進行二次開發,實現具體功能的應用系統。spring
設計模式:是一套被反覆使用、多數人知曉的、通過分類編目的、代碼設計經驗的總結,它強調的是一個設計問題的解決方法。數據庫
首先來講說MVC設計模型:
1.定義:MVC 設計模型是一種使用 Model View Controller( 模型-視圖-控制器)設計建立 Web 應用程序的模式。django
由上主謂賓能夠很容易看出,mvc模型是一種用來寫web應用程序的樣式,也就是說只能寫web不能寫其它?設計模式
2.既然使用了 Model View Controller( 模型-視圖-控制器),那麼就頗有必要來介紹一下該(模型-視圖-控制器)究竟是怎樣的一個東西?架構
Model(模型):是應用程序中用於處理應用程序數據邏輯的部分。
一般模型對象負責在數據庫中存取數據。
一般視圖是依據模型數據建立的。
一般控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據。
再來講說MVC框架:
3. 視圖:視圖是用戶看到並與之交互的界面。視圖主要有元素HTML ,Adobe Flash,XHTML,XML/XSL,WML等一些標識語言和Web services。
模型:模型表示企業數據和業務規則。mvc
設計模型和框架的區別:(注意這裏首先討論的是總概念!)
先來看看網上給的區別,來自百度百科的:
在軟件生產中有三種級別的重用:內部重用(即在同一應用中能公共使用的抽象塊),代碼重用(即將通用模塊組合成庫或工具集,以便在多個應用和領域都能使用),應用框架的重用(即爲專用領域提供通用的或現成的基礎結構,以得到最高級別的重用性)。
框架一般是代碼重用,而設計模式是設計重用(?設計重用怎麼來的?上下都沒它的定義,百科垃圾就在這裏。),架構則介於二者之間。
設計模式是對在某種環境中反覆出現的問題以及解決該問題的方案的描述,它比框架更抽象;框架能夠用代碼表示,也能直接執行或複用,而對模式而言只有實例才能用代碼表示;設計模式是比框架更小的元素,一個框架中每每含有一個或多個設計模式,框架老是針對某一特定應用領域,但同一模式卻可適用於各類應用。能夠 說,框架是軟件,而設計模式是軟件的知識。
百科的回答每每缺少嚴謹,我在MBR lib網站中看到它們將軟件重用分類爲:產品重用/知識重用/環境重用。
框架是代碼重用,因此咱們在使用框架的時候老是引入不少包。
框架是軟件,而設計模式是軟件的「知識」。因此模式是框架的基礎。
再回到MVC這個小概念上來:
根據框架和設計模式的大概念,咱們應該能夠知道MVC框架和MVC設計模式區別的一二了。
以個人理解,以爲MVC設計模式更像設計師手中的圖紙(圖紙上的東西每每更抽象),而MVC框架則更像是工程師以設計師的圖紙而建造的產品!
最終的產品也許比設計師原來的圖紙有所出入,有些功能有所加強,有些又會適當的減弱,以此來更加適應大衆的需求和體驗!可是在總體上和本質上都是遵循設計師的構造的。
MVC設計模式就像建設房子的基礎(地基設計+結構設計+強弱電設計+消防設計+etc),而MVC框架則可在此基礎上根據需求構建的漂亮的成品房。
常見的框架和設計模型(注意這是大概念)
C++語言的QT、MFC、gtk
引用: 框架+架構+設計模式;