1. 程式人生 > >淺談MVC&MTV設計模式

淺談MVC&MTV設計模式

在目前基於Python語言的幾十個Web開發框架中,幾乎所有的全棧框架都強制或引導開發者使用MVC設計模式。所謂全棧框架,是指除了封裝網路和執行緒操作,還提供HTTP、資料庫讀寫管理、HTML模板引擎等一系列功能的Web框架,比如Django、Tornado和Flask。

MVC設計模式:

最早由Trygve Teenskaug在1978年提出,上世紀80年代是程式語言Smalltalk的一種內部架構。後來MVC被其他領域借鑑,成為了軟體工程中的一種軟體架構模式。

MVC把Web框架分為3個基礎部分:

  • 模型(Model):用於封裝與應用程式的業務邏輯相關的資料及對資料的處理方法,是Web應用程式中用於處理應用程式的資料邏輯的部分,Model只提供功能性的介面,通過這些介面可以獲取Model的所有功能。白話說,這個模組就是Web框架和資料庫的互動層。
  • 檢視(View):負責資料的顯示和呈現,是對使用者的直接輸出。
  • 控制器(Controller):負責從使用者端收集使用者的輸入,可以看成提供View的反向功能。

這三個部分互相獨立,但又相互聯絡,使得改進和升級介面及使用者互動流程,在Web開發過程任務分配時,不需要重寫業務邏輯及資料訪問程式碼。

MVC在Python之外的語言中也有廣泛應用,例如VC++的MFC,Java的Structs及Spring、C#的.NET開發框架,都非常有名。

MTV設計模式:

Django對傳統的MVC設計模式進行了修改,將檢視分成View模組和Template模組兩部分,將動態的邏輯處理與靜態的頁面展現分離開。而Model採用了ORM技術,將關係型資料庫表抽象成面向物件的Python類,將表操作轉換成類操作,避免了複雜的SQL語句編寫。MTV和MVC本質上是一樣的。

  • 模型(Model):和MVC中的定義一樣
  • 模板(Template):將資料與HTML語言結合起來的引擎
  • 檢視(View):負責實際的業務邏輯實現

Django的MTV模型組織可參考下圖所示:

&n