MVT模式


Django

  • 由python實現的,開源的,Web開發框架
  • 起初被開發來用於管理勞倫斯日報(Lawrence Journal-World)旗下的新聞內容網站
  • 2005年7月在BSD許可協議下發布
  • Django是一個比利時音樂家的名字
  • 注重 代碼復用,強調DRY原則(don't repeat yourself),可以幫助開發者快速地創建復雜的網站

 

MVT模式與MVC模式

有一種程序設計模式叫MVC,其核心思想是分工、解耦,讓不同的代碼塊之間降低耦合,增強代碼的可擴展性和可移植性,實現向后兼容

MVC的全拼為Model-View-Controller,最早由TrygveReenskaug在1978年提出,是施樂帕羅奧多研究中心(Xerox PARC)在20世紀80年代為程序語言Smalltalk發明的一種軟件設計模式,是為了將傳統的輸入(input)、處理(processing)、輸出(output)任務運用到圖形化用戶交互模型中而設計的。隨着標准輸入輸出設備的出現,開發人員只需要將精力集中在業務邏輯的分析與實現上。后來被推薦為Oracle旗下Sun公司Java EE平台的設計模式,並且受到越來越多的使用ColdFusion和PHP的開發者的歡迎。現在雖然不再使用原來的分工方式,但是這種分工的思想被沿用下來,廣泛應用於軟件工程中,是一種典型並且應用廣泛的軟件架構模式。后來,MVC的思想被應用在了Web開發方面,被稱為Web MVC框架。

MVC的核心思想就是模型的復用,模型不用關心處理結果展現,比如模型返回一些數據,然后交給不用的視圖展現,可以使用不同的視圖來訪問同一個模型;代碼方便維護,比如修改模型不會影響到視圖(模板),反過來修改視圖,也不會影響到模型;方便測試, 比如,將業務邏輯代碼寫在servlet里面,需要部署到容器上,然后才能測試。而將業務邏輯代碼寫在類里面,可以直接用main()測試(不依賴容器)

mvc的缺點

      使用mvc,會增加代碼量、相應地也會增加軟件開發的成文,設計的難度也會增加,適合大型項目。
(1)視圖跟控制器過於緊密的連接,(視圖與控制器是相互分離,但卻是聯系緊密的部件,視圖沒有控制器的存在,其應用是很有限的,反之亦然,這樣就妨礙了他們的獨立重用。【例如,不可能總是在jsp頁面中直接訪問模型,一般放在邏輯控制層進行處理,servlet】)
(2)增加了系統結構和實現的復雜性
(3)部分高級界面工具或構造器不支持MVC
(4)視圖對模型數據的訪問效率低(依據模型操作接口的不同,視圖可能需要多次調用才能獲得足夠的顯示數據。對未變化數據的不必要的頻繁訪問,也將損害操作性能。【例如,頁面的有一部分數據我並沒有更新,但是提交到模型層照樣會去獲得返回顯示 】)
(4)調試應用程序帶來了一定的困難。每個構件在使用之前都需要經過徹底的測試。
     簡單的小型項目,使用MVC設計反而會降低開發效率,層和層雖然相互分離,但是之間關聯性太強,沒有做到獨立的重用

 

MVC模式說明

  • M全拼為Model,主要封裝對數據庫層的訪問,對數據庫中的數據進行增、刪、改、查操作。
  • V全拼為View,用於封裝結果,生成頁面展示的html內容。
  • C全拼為Controller,用於接收請求,處理業務邏輯,與Model和View交互,返回結果

 

Django的MVT

Django也是MVC框架。 但是,Django框架(內部的URLconf)作為控制器的角色,負責了接收用戶請求和轉發請求的工作,Django 里更關注的是模型(Model)、模板(Template)和視圖(Views),故稱之為 Django MVT 模式

  • M全拼為Model,與MVC中的M功能相同,負責和數據庫交互,進行數據處理。
  • V全拼為View,與MVC中的C功能相同,接收請求,進行業務處理,返回應答。
  • T全拼為Template,與MVC中的V功能相同,負責封裝構造要返回的html。 

 


免責聲明!

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



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