關於什麼是框架
框架(Framework)是一個框子——指其約束性,也是一個架子——指其支撐性。
IT語境中的框架,特指為解決一個開放性問題而設計的具有一定
性的支撐結構。在此結構上約束可以根據具體問題擴充套件、安插更多的組成部分,從而更迅速和方便地構建完整的解決問題的方案。
目前還沒看到什麼有趣的個人化解釋,可能是因為要解決都複雜到設計出框架來解決的問題的人比大多數有情趣的人來說都更感覺boring吧,所以……嘿嘿!
也就是說:1)框架本身一般不完整到可以解決特定問題;2)框架天生就是為擴充套件而設計的;3)框架裡面可以為後續擴充套件的元件提供很多輔助性、支撐性的方便易用的實用工具(utilities),也就是說框架時常配套了一些幫助解決某類問題的庫(libraries)或工具(tools)。
約束性:針對解決特定問題的軟體框架會首先定義問題的邊界,進而將相關的軟體元件約束在這個邊界內,保持框架在解決問題方面上的內聚性。
支撐性:框架本身是不解決什麼問題的,但給瞭解決問題的相關元件一個插接、組合的底子,這個底子的科學性和易用性直接影響到在此之上進行進一步開發的科學性和方便性。
框架不一定只是解決軟體開發問題,也可以解決軟體工程問題(比如Microsoft Solution Framework)或資訊系統等問題。
庫和框架都是一種有別於軟體、面向程式開發者的產品形式。正因為如此,也有很多人誤以為庫就是框架,或者認為指定語言的庫就是框架。
庫的英語為 Library ( 簡寫 Lib ),框架的英語為 Framework。
庫是將程式碼集合成的一個產品,供程式設計師呼叫。物件導向的程式碼組織形式而成的庫也叫類庫。程式導向的程式碼組織形式而成的庫也叫函式庫。在函式庫中的可直接使用的函式叫庫函式。開發者在使用庫的時候,只需要使用庫的一部分類或函式,然後繼續實現自己的功能。
框架則是為解決一個(一類)問題而開發的產品,框架使用者一般只需要使用框架提供的類或函式,即可實現全部功能。可以說,框架是庫的升級版。開發者在使用框架的時候,必須使用這個框架的全部程式碼。框架和庫的比較可以想像為:假如我們要買一臺電腦。框架為我們提供了已經裝好的電腦,我們只要買回來就能用,但你必須把整個電腦買回來。這樣使用者自然輕鬆許多,但會導致很多人用一樣的電腦,或你想自定義某個部件將需要修改這個框架。而庫就如自己組裝的電腦。庫為我們提供了很多部件,我們需要自己組裝,如果某個部件庫未提供,我們也可以自己做。庫的使用非常靈活,但沒有框架方便。
框架一般指的是會呼叫你的程式碼的東東,庫一般指的是會被你呼叫的東東:這個也不是絕對的。框架和庫都是程式碼庫,你在某個庫的約束下開發,那這個庫就是框架,你不受它的約束,那它就是庫。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70006413/viewspace-2985627/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於什麼是 DevOpsdev
- 什麼是框架?為什麼說 Angular 是框架?框架Angular
- 什麼是模式? 什麼是框架?模式框架
- 什麼是框架框架
- XBridge框架是什麼??框架
- 設計,架構,框架之間是什麼關係?架構框架
- 關於開發框架的秘密:前後端分離的好處是什麼?框架後端
- 什麼是SAP系統,關於SAP的故事
- Java三大框架是什麼,有什麼作用Java框架
- 框架是個什麼東西?框架
- php之Symfony框架是什麼PHP框架
- php中QPM框架是什麼?PHP框架
- 什麼是Spring Framework 框架?SpringFramework框架
- 什麼是快速開發框架框架
- HTML中的框架是什麼?HTML框架
- GNU是什麼?和Linux是什麼關係?Linux
- 關於什麼是jsonp概念簡單介紹JSON
- 什麼是關鍵 CSSCSS
- 什麼是關聯分析?
- 關於程式碼重構的靈魂三問:是什麼?為什麼?怎麼做?
- 關於非線性和線性是什麼的理解
- 什麼是SAP系統,關於SAP的故事(轉載)
- 什麼是web2py框架?它有什麼作用呢?Web框架
- Java是什麼? Java適用於什麼工作?Java
- SID是什麼?用於什麼場景
- 關於延遲塊清除的原理是什麼?為什麼要進行塊清除
- Flex 是什麼? flex和flash是什麼關係?flex 解決什麼問題?flex和j2ee/.net是什麼關係?Flex
- 通用爬蟲技術框架是什麼?爬蟲框架
- 什麼是SVN? 什麼是CVS? SVN跟CVS又有什麼關係呢?
- 什麼是Yottachain和YTA幣,它們是什麼關係?AI
- Koala Framework是什麼?我為什麼要寫這個框架?Framework框架
- 什麼是Spring 框架?Spring 框架有哪些主要模組?Spring框架
- 什麼是web2py框架?有什麼獨特之處?Web框架
- GitClub和GitHub是什麼關係Github
- Java 和 JavaScript 是什麼關係?JavaScript
- 微博跟微軟是什麼關係?微軟
- openssh和openssl是什麼關係
- 什麼是反對稱關係?