MVC、MVP、MVVM、MVW誰得天下-MVC傳

by TibaMe小編

POSTED BY: 李俊龍

軟體架構是甚麼

一個軟體最核心的是甚麼?當然就是程式碼,每個工程師日日夜夜的心血結晶,可是龐大的軟體每個都有上千行程式碼如此的多,在開發上該如何分工?因此有許多工程師提出各種軟體架構、設計模式,好幫助大家能夠更好的分工以及開發軟體。就此MVC因應而生但是隨著技術的推陳出新,以及3C產品的世代更新,基本的MVC也不能適應,MVP、MVVM…各種新的模式一一問世,到底
未來會是誰執掌牛耳呢?還是江山代有才人出?

‣MVC

先從MVC開始,MVC簡單來說就是將系統分成Model(模型)、View(視圖)和Controller(控制器)三個部分。
  1. Model(模型):接受Controller的請求,負責處理商業邏輯,負責資料處理邏輯,在J2EE架構下為JaveBean。
  2. View(視圖):接受Controller的請求,負責顯示畫面,會接收Controller從Model取出的資料或者是經過運算後的結果,根據需求呈現所需要的畫面,在J2EE架構下為JSP。
  3. Controller(控制器):接受使用者的請求,從中取得請求參數、驗證參數,轉發請求給Model或者是View,在J2EE架構下為Servlet或者是JSP。

model2architecture

圖片來源:https://sites.google.com/site/sureshdevang/jsp-architecture

上圖是當使用者發出請求,MVC的流程架構為,當Controller接受到請求會先取得參數並驗證,會根據需求將此資料轉給Model進行商業邏輯處理,Model與資料庫建立連線,進行商業邏輯的資料處理,處理完成會將結果傳回給Controller,Controller會根據需求將Model的處理結果傳給View,View在根據需求回傳所需要的畫面給使用者。

目前主流的Web MVC

隨著技術不斷的演進,JavaScript、DOM、Ajax應用日漸廣泛,甚至HTML5新API的推波助瀾,以及伺服端非同步處理技術的進步,即使使用傳統的持續請求詢問方式,已不再需要重清(Refresh)整個頁面,可利用Ajax在背景取得Model的資料,而後用JavaScript更新畫面上相應的部分即可。
現在是瀏覽器亦可有自成一體的MVC應用程式,由HTML、DOM、CSS作為View的實現,JavaScript用以實現Controller與Model,就能在瀏覽器中實現傳統MVC模式應有流程,瀏覽器中JavaScript撰寫的Model,可將伺服端比擬為資料庫,向伺服端取得資料,就像對資料庫查詢,Ajax是與伺服端溝通的機制,伺服端傳回的資料,目前主流為XML和JSON這兩種資料格式並且會去實作Restful架構,這種設計模式衍生了MVW的開頭,也開啟了前端框架的空前盛況。

MVC優點

由於MVC很好的分離了View和Model,所以它具有以下優點

  1. 程式間相依性低。
  2. 開發速度快。
  3. 可維護性高。

MVC缺點

  1. 程式間相依性低。
  2. 不適合小型,中等規模的應用程式
  3. 花費時間過長。

下一篇我們將會探討MVP在JavaScript上的應用。

Tibame學習網相關課程

JSP_學程圖

Java Web程式設計師

 

TibaMe-track_J2EE工程師

Struts 2技術工程師

 

分享這篇文章:
1 留言
0

您也許會喜歡

1 留言

iOS Architecture Patterns – SoftShare 2016/02/03 - 21:18

[…] MVC,MVP,MVVM,MVW誰得天下-MVC傳 […]

回覆

發佈留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料