淺談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模型組織可參考下圖所示:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM