什麼是框架
框架(Framework)是一個框子——指其約束性,也是一個架子——指其支撐性。
IT語境中的框架,特指為解決一個開放性問題而設計的具有一定
性的支撐結構。在此結構上約束可以根據具體問題擴充套件、安插更多的組成部分,從而更迅速和方便地構建完整的解決問題的方案。
目前還沒看到什麼有趣的個人化解釋,可能是因為要解決都複雜到設計出框架來解決的問題的人比大多數有情趣的人來說都更感覺boring吧,所以……嘿嘿!
也就是說:1)框架本身一般不完整到可以解決特定問題;2)框架天生就是為擴充套件而設計的;3)框架裡面可以為後續擴充套件的元件提供很多輔助性、支撐性的方便易用的實用工具(utilities),也就是說框架時常配套了一些幫助解決某類問題的庫(libraries)或工具(tools)。
約束性:針對解決特定問題的軟體框架會首先定義問題的邊界,進而將相關的軟體元件約束在這個邊界內,保持框架在解決問題方面上的內聚性。
支撐性:框架本身是不解決什麼問題的,但給瞭解決問題的相關元件一個插接、組合的底子,這個底子的科學性和易用性直接影響到在此之上進行進一步開發的科學性和方便性。
框架不一定只是解決軟體開發問題,也可以解決軟體工程問題(比如Microsoft Solution Framework)或資訊系統等問題。
庫和框架都是一種有別於軟體、面向程式開發者的產品形式。正因為如此,也有很多人誤以為庫就是框架,或者認為指定語言的庫就是框架。
庫的英語為 Library ( 簡寫 Lib ),框架的英語為 Framework。
庫是將程式碼集合成的一個產品,供程式設計師呼叫。物件導向的程式碼組織形式而成的庫也叫類庫。程式導向的程式碼組織形式而成的庫也叫函式庫。在函式庫中的可直接使用的函式叫庫函式。開發者在使用庫的時候,只需要使用庫的一部分類或函式,然後繼續實現自己的功能。
框架則是為解決一個(一類)問題而開發的產品,框架使用者一般只需要使用框架提供的類或函式,即可實現全部功能。可以說,框架是庫的升級版。開發者在使用框架的時候,必須使用這個框架的全部程式碼。框架和庫的比較可以想像為:假如我們要買一臺電腦。框架為我們提供了已經裝好的電腦,我們只要買回來就能用,但你必須把整個電腦買回來。這樣使用者自然輕鬆許多,但會導致很多人用一樣的電腦,或你想自定義某個部件將需要修改這個框架。而庫就如自己組裝的電腦。庫為我們提供了很多部件,我們需要自己組裝,如果某個部件庫未提供,我們也可以自己做。庫的使用非常靈活,但沒有框架方便。
框架一般指的是會呼叫你的程式碼的東東,庫一般指的是會被你呼叫的東東:這個也不是絕對的。框架和庫都是程式碼庫,你在某個庫的約束下開發,那這個庫就是框架,你不受它的約束,那它就是庫。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70006413/viewspace-2929175/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 什麼是框架?為什麼說 Angular 是框架?框架Angular
- 什麼是模式? 什麼是框架?模式框架
- 關於什麼是框架框架
- XBridge框架是什麼??框架
- Java三大框架是什麼,有什麼作用Java框架
- 框架是個什麼東西?框架
- php之Symfony框架是什麼PHP框架
- php中QPM框架是什麼?PHP框架
- 什麼是Spring Framework 框架?SpringFramework框架
- 什麼是快速開發框架框架
- HTML中的框架是什麼?HTML框架
- 什麼是web2py框架?它有什麼作用呢?Web框架
- 通用爬蟲技術框架是什麼?爬蟲框架
- Koala Framework是什麼?我為什麼要寫這個框架?Framework框架
- 什麼是Spring 框架?Spring 框架有哪些主要模組?Spring框架
- 什麼是web2py框架?有什麼獨特之處?Web框架
- 爬蟲框架的功能組成是什麼爬蟲框架
- Python是什麼?Python有哪些框架?Python框架
- 自動化框架到底是什麼?框架
- 什麼是cookie,什麼是sessionCookieSession
- 什麼是DNS,什麼是HostsDNS
- 這是什麼這是什麼
- Python爬蟲是什麼?常用框架有哪些?Python爬蟲框架
- 連梁和框架樑的區別是什麼?框架
- 什麼是框架?(最佳實踐、專案總結)框架
- 什麼是產品經理的“Jobs to Be Done”框架?框架
- 什麼是最優秀的JavaScript框架?Angular or Backbone?JavaScript框架Angular
- Apworks框架實戰(一):Apworks到底是什麼?框架
- 什麼是WebAuthn、FIDO 是什麼?Web
- ITIL是什麼意思?ITIL是什麼?
- 什麼是跨域,什麼是同源跨域
- 什麼是爬蟲?Python爬蟲框架有哪些?爬蟲Python框架
- 設計,架構,框架之間是什麼關係?架構框架
- 對laravel框架你瞭解多少,為什麼說是優雅的框架Laravel框架
- 什麼是.NET平臺、什麼是c#、什麼是ASP.NET。C#ASP.NET
- ftp是什麼,ftp是什麼東西?FTP
- Java是什麼_Java是做什麼的?Java
- 什麼是正向代理?什麼是反向代理?