[Program Note] MVC Architectural Pattern簡介
MVC在軟體工程中是個常見的詞彙,它所代表的是一種架構模式(architectural pattern),例如Repository、Layered、Client-Server、Pipe & Filter都是一些常見的架構模式,架構模式是一種概念,用於解釋與描述軟體架構的一些必要的膠合元素(cohesive elements)。
MVC模式通常用於開發使用者介面的應用程式,由資訊呈現給使用者與從使用者接受的方式,來區分資訊在軟體內部的表達方式;MVC架構的目的是在於實現動態程式設計,降低後續對程式的修改、擴充的難度,簡化程式的架構,並且提升程式的重用性。
在MVC架構中軟體系統分為三個部分,模型(model)、視圖(view)、控制器(controller);然而如同前面所說的,MVC是一個概念,並不是一個模型或者標準,這使得許多框架在實作自己的MVC架構時,對於三者所負責的功能或多或少有些許不同(其中個議題引起相當大的迴響,模型與視圖之間到底會不會互動,有興趣可以參考—MVC是一個巨大誤會);撇開三者間太細節的定義,大致上可以區分三者的功能為:
上圖是我認為比較客觀的MVC架構的流程圖;視圖會接收來自使用者透過介面所給的輸入,視圖會將這些輸入資料給控制器,控制器會將資料轉交給合適的模型,模型將資料處理完後所得的資訊傳給控制器,控制器會把資訊給合適的視圖呈現給使用者。
最後仍然必須再次強調,MVC是一個概念而不是標準,不同的語言、不同的框架在實作MVC模式時都會有不一樣的地方;重點在於如何實現動態程式設計,提升應用程式的擴充性與重用性,並降低其複雜度。
MVC模式通常用於開發使用者介面的應用程式,由資訊呈現給使用者與從使用者接受的方式,來區分資訊在軟體內部的表達方式;MVC架構的目的是在於實現動態程式設計,降低後續對程式的修改、擴充的難度,簡化程式的架構,並且提升程式的重用性。
在MVC架構中軟體系統分為三個部分,模型(model)、視圖(view)、控制器(controller);然而如同前面所說的,MVC是一個概念,並不是一個模型或者標準,這使得許多框架在實作自己的MVC架構時,對於三者所負責的功能或多或少有些許不同(其中個議題引起相當大的迴響,模型與視圖之間到底會不會互動,有興趣可以參考—MVC是一個巨大誤會);撇開三者間太細節的定義,大致上可以區分三者的功能為:
- 控制器(controller): 介於模型與視圖之間,負責處理整個應用程式的流程控制。
- 模型(model): 負責資料的處理,例如資料庫的存取、資料的驗證與稽核等。
- 視圖(view): 提供使用者視覺化的介面,接收使用者的輸入或回覆應用程式的結果。
上圖是我認為比較客觀的MVC架構的流程圖;視圖會接收來自使用者透過介面所給的輸入,視圖會將這些輸入資料給控制器,控制器會將資料轉交給合適的模型,模型將資料處理完後所得的資訊傳給控制器,控制器會把資訊給合適的視圖呈現給使用者。
最後仍然必須再次強調,MVC是一個概念而不是標準,不同的語言、不同的框架在實作MVC模式時都會有不一樣的地方;重點在於如何實現動態程式設計,提升應用程式的擴充性與重用性,並降低其複雜度。
留言
張貼留言