iT邦幫忙

0

初探MVC架構

mvc

MVC是什麼

MVC是一種軟體架構,著重在關注點分離,此架構分成三類

M : Model :
專注於業務邏輯,包括對於資料的處理、類別的定義、
V : View :
專注於畫面呈現,可能會包含部分顯示邏輯
C : Controller :
專注於控制邏輯,用來流程管控,像是呼叫Model、調用View等

網路上Google圖片搜尋"MVC"時跳出一大堆圖片,每個圖片裡的資料指向也都不太一樣(單向、雙向),對於我這個MVC新手真的是看的七葷八素,每個圖片都點進去看看,最後有找到一個我比較能理解的圖,並用他來說明。
https://ithelp.ithome.com.tw/upload/images/20210714/201140672LMyzWmh0U.jpg
圖片來源 : https://docs.microsoft.com/zh-tw/archive/msdn-magazine/2009/july/restful-services-with-asp-net-mvc-and-xhtml

  1. Client來訪問此網站
  2. 客戶端經由Routing進到對應的Controller
  3. Controller呼叫Model執行對應的動作
  4. Model連接資料庫並取得、處理資料
  5. Controller將資料傳到對應的View
  6. 最後將View顯示到Client端

(以上理解若有錯誤請不吝嗇指導,謝謝)

為什麼要把M、V、C分開?

這是一個軟體架構,為了將程式碼關注點分離的架構,各自管好各自的領域。
工程師A負責Model,他是邏輯專家,正確的抓取、分析、處理資料。
工程師B負責Contorller,他調用正確的Model並將資料傳給View。
工程師C負責View,她把畫面用的美美的,只要等待資料的到來把它顯示就好。
(單一職責原則)

某天要修改資料的處理邏輯,怎麼辦呢?
只要找"工程師A"請他修改,而工程師A只要在Model內處理完就好,Contorller呢?View呢?沒它們的事。
畫面醜呢?改View就好。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言