為什么要使用框架


使用框架的初衷

  編程有一個准則Don't Repeat Yourself(不要重復你的代碼)。如果有一些代碼出現重復,我們就應該把這些代碼提取出來封裝成一個方法。隨着時間的積累有了一批方法,我們把它整合成工具類。工具類如果形成規模,可以把工具類整合成類庫。類庫更系統功能更全。不僅不要自己重復造項目中已有的輪子,也不要造別人已經造好的輪子。我們只需要直接使用已有的輪子就行。

 框架也是一樣,框架,是為了我們不必總是寫相同代碼而誕生的。框架,是為了讓我們專注於業務邏輯而誕生的。框架,把我們程序設計中不變的部分抽取出來,讓我們專注於與業務有關的代碼。

MVC框架的誕生

同樣的代碼寫兩次就是罪過,所以我們需要什么東西來讓我們解放出來。很快人們就發展出了一套MVC框架.

 

模型-視圖-控制器架構模式背后的思想非常簡單:我們的應用程序中必須區分下面這些職責:

應用程序被分成了三個主要的部分,每個部分負責掌管不同的任務。下面讓我們看看詳細的解釋以及一個例子。

控制器

控制器掌管着用戶的請求(當用戶點擊圖形用戶界面(GUI)上的元素執行操作時,控制器會收到HTTP GET或者POST請求)。它的主要功能就是調用並協調需要的資源/對象來執行用戶請求。通常控制器會為任務調用合適的模型,以及選擇合適的視圖。

模型

模型是指運用於數據之上的數據規則和數據內容,它一般對應於應用程序所要管理的對象。在軟件系統中,任何事物都可以被抽象成可以對其以某種方式進行處理的數據模型。

MVC框架能幫我們做什么?

框架規定了開發者寫哪些代碼/不寫哪些代碼,怎么寫代碼——這就是框架主要解決的問題。MVC框架實現了MVC模式。什么意思?意思是只要你根據框架的要求填充代碼,你就能夠很簡單的實現MVC模式。

誰來響應用戶請求?框架會告訴你
誰負責生成響應界面?框架會告訴你

如何匹配網址?框架會告訴你

如何接受參數?框架會告訴你,
如何與視圖交互?框架會告訴你

 

MVC的好處是什么

我們使用MVC的一個最明顯好處就是它將視圖展示和應用邏輯清晰的分離開來。對不同用戶以及不同設備類型的支持一直是當下的一個常見問題。來自台式電腦和手機的請求所得到的視圖應該是不相同的。模型會返回完全相同的數據,但是不同的地方是控制器會選擇使用的視圖文件來展示數據(我們可以把它看作是不同的模板)。除了將視圖從業務邏輯中分離開外,MVC的分離也降低了大型應用設計的難度。代碼也更具結構性,因此也更容易維護,測試和重用。這種模式會幫助我們清晰的區分程序各部分的職責,便於程序維護,代碼重用以及測試。MVC框架給我們提供了一個基本的MVC骨架,以及許多有用的功能,提高了我們的效率,讓開發過程更加輕松。

 

使用框架的必要性

需要指出的是,只有在相當規模的程序中應用這些框架才能體會到好處。
如果你的網站、程序很小,那么沒有必要殺雞用牛刀。

不建議新手一開始就使用框架,因為你不知道框架幫你做了什么,而這不利於個人的成長。在學習階段,先試試不用框架我該如何做,然后就會更明白框架的價值。

框架和類庫的區別

框架和類庫的主要區別是一是控制反轉,一般程序,程序的運作是由程序員全盤掌握的。程序資源的初始化、銷毀、定位查找,執行邏輯都是我們寫代碼實現的。這些順着程序主入口開始查找都可以找得到。但是應用框架后的控制權已經交給了框架。比如配置框架參數時已經控制權移交給框架的控制器。

二是框架會告訴你還缺什么,你只需要把這些代碼寫完,程序就可以正常運行了。類庫實現的代碼你無需再寫,但是類庫沒告訴你,程序員需要寫哪些代碼,需要程序員自己心理有數。

 

 

MVC的缺點

由於它沒有明確的定義,所以完全理解MVC並不是很容易。使用MVC需要精心的計划,由於它的內部原理比較復雜,所以需要花費一些時間去思考。您將不得不花費相當可觀的時間去考慮如何將MVC運用到您的應用程序,同時由於模型和視圖要嚴格地分離,這樣也給調試應用程序帶來了一定的困難。每個構件在使用之前都需要經過徹底的測試。MVC並不適合小型甚至中等規模的應用程序,花費大量時間將MVC應用到規模並不是很大的應用程序通常會得不償失。MVC設計模式是一個很好創建軟件的途徑,它所提倡的一些原則,像內容和顯示互相分離可能比較好理解。但是如果您要隔離模型、視圖和控制器的構件,您可能需要重新思考您的應用程序,尤其是應用程序的構架方面。如果您肯接受MVC,並且有能力應付它所帶來的額外的工作和復雜性,MVC將會使您的軟件在健壯性、代碼重用和結構方面上一個新的台階。

 


免責聲明!

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



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