MVC是框架?是設計模式?是架構?還是……


文章轉自:https://blog.csdn.net/lianjiangwei/article/details/50864636

很多人都知道MVC,都知道就是把將數據和顯示分離,知道Model—View—Controller,但是讓你說MVC是什么東西,你可能不知如何回答。那么MVC到底是什么玩意呢?框架?設計模式?架構?都不是。


可以肯定的說(個人認為),MVC不是框架,不是設計模式,更不是架構,它僅僅是一種架構模式。它不描述系統架構,也不指定使用什么技術,僅僅是描述系統架構的一種模式,類似於AOP、IOC、ORM等等,具體的框架技術則是基於這些模式的一些實現而已,比如基於MVC模式的框架有著名的Struts、Spring MVC、JSF、Tapestry以及比較老的WebWork等等,基於ORM模式的框架有Hibernate、MyBatis、iBatis以及.NET比較有名的Entity Framework等等。


        我畫了一張圖來描述這幾個概念之間的關系,主要是描述包含關系,個人理解而已:
 

設計模式(Design pattern:是一套被反復使用、多數人知道的、經過分類編目的、代碼設計經驗的總結。從定義上看,它涉及到了代碼級別,側重於解決實際的現實的問題。比如我們應該如何為不同的商品設計折扣的方式,采用策略模式唄。


框架(Framework):是整個或部分系統的可重用設計,表現為一組抽象構件及構件實例間交互的方法;另一種定義認為,框架是可被應用開發者定制的應用骨架。前者是從應用方面而后者是從目的方面給出的定義。從定義看,它涉及到了一堆構件,以及這些構件之間的依賴關系、責任分配和流程控制等,說白了就是一堆類而已。這些類以及之間的關系構成了框架。比如想要讓用戶通過Servlet來訪問頁面,怎么辦?用Struts唄。


架構模式(架構風格):一個架構模式描述軟件系統里的基本的結構組織或綱要。架構模式提供一些呈先定義好的子系統,指定它們的責任,並給出把它們組織在一起的法則和指南。從定義上來看,它是在指導我們如何組織代碼,是一種具有指導意義的思想,比如要解決系統的數據與顯示分離的問題,那就使用MVC模式唄。


軟件架構(software architecture):是一系列相關的抽象模式,用於指導大型軟件系統各個方面的設計。 軟件架構是一個系統的草圖。軟件架構描述的對象是直接構成系統的抽象組件。各個組件之間的連接則明確和相對細致地描述組件之間的通訊。在實現階段,這些抽象組件被細化為實際的組件,比如具體某個類或者對象。比如,我們要開發一個在線測評系統,使用什么架構呢?輕量級的SSH還是重量級的EJB?自己決定吧。


小結一下:


其實吧,軟件這個行業的很多名詞都沒有特別准確的定義,好多概念是十分抽象和難理解的。但是回過頭來看,我們不是做理論研究的,只要我們能夠在問題的出現的場景中,使用最為合適的技術去解決它,就可以了。軟件這行,紙上談兵絕對是不行的,能為企業和公司解決實際問題,帶來經濟效益,促進信息技術轉化為生產力,實現中國夢,乃我們最終的夙願。


免責聲明!

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



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