框架 和設計模式 架構的區別


框架和設計模式的區別

        有很多程序員往往把框架模式和設計模式混淆,認為MVC是一種設計模式。實際上它們完全是不同的概念。[7]  
        框架、設計模式這兩個概念總容易被混淆,其實它們之間還是有區別的。框架通常是代碼重用,而設計模式是設計重用,架構則介於兩者之間,部分代碼重用,部分設計重用,有時分析也可重用。在軟件生產中有三種級別的重用:內部重用,即在同一應用中能公共使用的抽象塊;代碼重用,即將通用模塊組合成庫或工具集,以便在多個應用和領域都能使用;應用框架的重用,即為專用領域提供通用的或現成的基礎結構,以獲得最高級別的重用性。
       框架與設計模式雖然相似,但卻有着根本的不同。設計模式是對在某種環境中反復出現的問題以及解決該問題的方案的描述,它比框架更抽象;框架可以用代碼表示,也能直接執行或復用,而對模式而言只有實例才能用代碼表示;設計模式是比框架更小的元素,一個框架中往往含有一個或多個設計模式,框架總是針對某一特定應用領域,但同一模式卻可適用於各種應用。可以說, 框架是軟件,而 設計模式是軟件的知識
設計模式有哪些?
MVC、MTV、 MVP、CBD、 ORM等等;
框架有哪些?
C++語言的QT、MFC、gtk,Java語言的 SSH 、 SSIphp語言的 smarty(MVC模式), python語言的django(MTV模式)等等
設計模式有哪些?
工廠模式、適配器模式、策略模式等等
簡而言之:框架是大智慧,用來對軟件設計進行分工;設計模式是小技巧,對具體問題提出解決方案,以提高代碼復用率,降低耦合度。
 
        設計模式:是一種對象關系管理與設計的學問,一種思想,它不屬於任何一種語言的。因此設計模式出現后,衡量一個程序員的水平,其中一個領域就是對設計模式的了解程度。它代表了你的歸納、組織等和代碼與對象關系的設計能力。
        框架:是一種工具,它不是學問,基於設計模式的一種特定實現,它更多是面向程序員提供某些已經實現的功能,和有限度的關系管理。
        架構:是一種已經提供了關系布局的骨架,它是由關系設計而來的,無論設計與使用的人,至少要了解它的作用,特別是關系。
個人理解:
框架《設計模式《架構
 
大多框架是基於設計模式的一種實現(spring是MVC的實現)

這就是『設計模式』這個翻譯的坑了。。。明明就是『幾種軟件設計的技巧』,非要用『模式』這個渾身上下都散發着『權威』味道的詞。。。

結果造成了很多人不求甚解的情況下生搬硬套,以為學會了『設計模式』軟件設計就不再有任何問題,以為軟件就是『設計模式』的堆疊。。。流毒無窮


好吧,MVC才是真!設計模式。什么單例、工廠都是設計技巧

軟件架構:運行在什么平台?用什么語言開發?采用什么樣的交互方式?用什么來存儲數據?……

設計模式:用什么語言開發中的“如何構建代碼”

開發框架:

作者:Brian
鏈接:https://www.zhihu.com/question/31079945/answer/159691420
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。



免責聲明!

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



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