MVC架構由來及概念
今天要來和大家分享一下網站架構之一 - MVC架構,這個概念最早是在1974年由Trygve Reenskuang提出,它是屬於軟體工程裡的其中一種軟體設計模式,而後,在八零年代由Xerox PARC以smalltalk實作出MVC。MVC即是 Model + View + Controller 的縮寫,概念上,它就是將複雜的結構化軟體設計根據功能作用而區分開來,使得之後對於系統的修正及擴充更加簡單及更具彈性,而且對於拆開來的每個單元皆能夠視情況重覆使用;此外,由於程式複雜度的簡化,使得整體架構更加直覺,對於拆開來的每個單元都能夠有明確的功能定位,整體開發維護效率更高。目前的網站架構大部分是以MVC架構為主,而目前所有的Web應用框架多是基於MVC而生成,我們先簡單地剖析一個網站來看
Model
網站後端所進行的「商業邏輯」,也就是對於各類資料的處理方法或是各種功能邏輯的處理方式,例如存取資料庫的邏輯、判斷使用者登入所輸入的密碼是否有不合法字元的邏輯等等。Model有直接存取資料庫的能力,專職於定義各種操作邏輯。
View
前端檢視的部分,也就是我們所看到的網頁,也可以說是我們對網站所要求的服務結果呈現。View就是一個使用者與軟體系統溝通的一個介面,由於會是讓使用者直接存取到的一個單元,因此對於視覺上以及人因工程上會有較多的著墨,如畫面的排版、操作習慣的流暢度等等。
Controller
做為網站的前端和後端居中協調的角色,針對不同類型的事件做整體流程的控制並做出適當的回應,事件的發起可以是前端使用者的服務要求或是後端資料庫的重新整理等等。
我們以一個比較生活化的網路使用習慣來看,例如我們在facebook要看某個朋友的專頁時,我們點下了那位朋友的圖片,前端接收到了使用者的點選事件,將這個要求(Request)傳到後面,透過事先指定的Controller接住之後,Controller再去指定適當的Model到後端資料庫撈取對應的資料或頁面,最後再由Controller把結果丟回(Response)給前端呈現給使用者看,如以下簡圖表示:
優點 & 缺點
菜鳥設計師畢竟是菜鳥,只會Web MVC架構XD...事實上菜鳥是寫JSP起家的,JSP有所謂的Model 1設計模式還有Model 2設計模式,Model 1的設計模式就是把網頁視圖、HTTP Request\Response、還有一堆後端處理邏輯全部都寫在JSP的檔案裡,有結構化程式設計的感覺,但是菜鳥覺得這樣的設計方式維護起來很困難,因為所有程式碼全部都混在一塊,在實作新的程式呼叫或是擴充功能的時候,執行面不夠直覺,造成錯誤的風險會大大提高,而在菜鳥使用了Model 2的設計模式之後,因為就根本上就已經基於MVC架構來設計,因此每個層面分化的很明確,在維護或是擴充上都能夠很直覺地執行,整體架構各個層面也變得較為簡潔。那麼MVC有沒有缺點???有!!!!!!因為MVC的概念是確實切開了各個功能面,因此在事前的軟體規畫以及開發過程會較費力,需要經過不斷的嘗試以及重構,這是菜鳥個人覺得較費力的地方。
小總結
整體上,我們還是會採用MVC架構來進行網站Framework的使用及建置,因為就長遠的規劃來看,MVC的維護成本是比較低的,在下一篇會和大家分享以實作PHP為主的MVC架構以及JavaScript的MVC架構介紹,請各位不吝指教^^
參考出處:http://zh.wikipedia.org/wiki/MVC
參考出處:http://zh.wikipedia.org/wiki/MVC
沒有留言:
張貼留言