發表文章

目前顯示的是 1月, 2019的文章

[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是一個巨大誤會 );撇開三者間太細節的定義,大致上可以區分三者的功能為: 控制器(controller): 介於模型與視圖之間,負責處理整個應用程式的流程控制。 模型(model): 負責資料的處理,例如資料庫的存取、資料的驗證與稽核等。 視圖(view): 提供使用者視覺化的介面,接收使用者的輸入或回覆應用程式的結果。 上圖是我認為比較客觀的MVC架構的流程圖;視圖會接收來自使用者透過介面所給的輸入,視圖會將這些輸入資料給控制器,控制器會將資料轉交給合適的模型,模型將資料處理完後所得的資訊傳給控制器,控制器會把資訊給合適的視圖呈現給使用者。 最後仍然必須再次強調,MVC是一個概念而不是標準,不同的語言、不同的框架在實作MVC模式時都會有不一樣的地方;重點在於如何實現動態程式設計,提升應用程式的擴充性與重用性,並降低其複雜度。