POSTED BY: 李俊龍
軟體架構是甚麼
一個軟體最核心的是甚麼?當然就是程式碼,每個工程師日日夜夜的心血結晶,可是龐大的軟體每個都有上千行程式碼如此的多,在開發上該如何分工?因此有許多工程師提出各種軟體架構、設計模式,好幫助大家能夠更好的分工以及開發軟體。就此MVC因應而生但是隨著技術的推陳出新,以及3C產品的世代更新,基本的MVC也不能適應,MVP、MVVM…各種新的模式一一問世,到底
未來會是誰執掌牛耳呢?還是江山代有才人出?
‣MVC
先從MVC開始,MVC簡單來說就是將系統分成Model(模型)、View(視圖)和Controller(控制器)三個部分。
- Model(模型):接受Controller的請求,負責處理商業邏輯,負責資料處理邏輯,在J2EE架構下為JaveBean。
- View(視圖):接受Controller的請求,負責顯示畫面,會接收Controller從Model取出的資料或者是經過運算後的結果,根據需求呈現所需要的畫面,在J2EE架構下為JSP。
- Controller(控制器):接受使用者的請求,從中取得請求參數、驗證參數,轉發請求給Model或者是View,在J2EE架構下為Servlet或者是JSP。
圖片來源: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,所以它具有以下優點
- 程式間相依性低。
- 開發速度快。
- 可維護性高。
MVC缺點
- 程式間相依性低。
- 不適合小型,中等規模的應用程式
- 花費時間過長。
下一篇我們將會探討MVP在JavaScript上的應用。
Tibame學習網相關課程
![]() Java Web程式設計師
| ![]() Struts 2技術工程師
|
1 留言
[…] MVC,MVP,MVVM,MVW誰得天下-MVC傳 […]