什麼是框架

JIAN2發表於2022-12-23


框架(Framework)是一個框子——指其約束性,也是一個架子——指其支撐性。

IT語境中的框架,特指為解決一個開放性問題而設計的具有一定
性的支撐結構。在此結構上約束可以根據具體問題擴充套件、安插更多的組成部分,從而更迅速和方便地構建完整的解決問題的方案。

目前還沒看到什麼有趣的個人化解釋,可能是因為要解決都複雜到設計出框架來解決的問題的人比大多數有情趣的人來說都更感覺boring吧,所以……嘿嘿!

也就是說:1)框架本身一般不完整到可以解決特定問題;2)框架天生就是為擴充套件而設計的;3)框架裡面可以為後續擴充套件的元件提供很多輔助性、支撐性的方便易用的實用工具(utilities),也就是說框架時常配套了一些幫助解決某類問題的庫(libraries)或工具(tools)。

約束性:針對解決特定問題的軟體框架會首先定義問題的邊界,進而將相關的軟體元件約束在這個邊界內,保持框架在解決問題方面上的內聚性。

支撐性:框架本身是不解決什麼問題的,但給瞭解決問題的相關元件一個插接、組合的底子,這個底子的科學性和易用性直接影響到在此之上進行進一步開發的科學性和方便性。

框架不一定只是解決軟體開發問題,也可以解決軟體工程問題(比如Microsoft Solution Framework)或資訊系統等問題。


庫和框架都是一種有別於軟體、面向程式開發者的產品形式。正因為如此,也有很多人誤以為庫就是框架,或者認為指定語言的庫就是框架。

庫的英語為 Library ( 簡寫 Lib ),框架的英語為 Framework。

庫是將程式碼集合成的一個產品,供程式設計師呼叫。物件導向的程式碼組織形式而成的庫也叫類庫。程式導向的程式碼組織形式而成的庫也叫函式庫。在函式庫中的可直接使用的函式叫庫函式。開發者在使用庫的時候,只需要使用庫的一部分類或函式,然後繼續實現自己的功能。

框架則是為解決一個(一類)問題而開發的產品,框架使用者一般只需要使用框架提供的類或函式,即可實現全部功能。可以說,框架是庫的升級版。開發者在使用框架的時候,必須使用這個框架的全部程式碼。框架和庫的比較可以想像為:假如我們要買一臺電腦。框架為我們提供了已經裝好的電腦,我們只要買回來就能用,但你必須把整個電腦買回來。這樣使用者自然輕鬆許多,但會導致很多人用一樣的電腦,或你想自定義某個部件將需要修改這個框架。而庫就如自己組裝的電腦。庫為我們提供了很多部件,我們需要自己組裝,如果某個部件庫未提供,我們也可以自己做。庫的使用非常靈活,但沒有框架方便。

框架一般指的是會呼叫你的程式碼的東東,庫一般指的是會被你呼叫的東東:這個也不是絕對的。框架和庫都是程式碼庫,你在某個庫的約束下開發,那這個庫就是框架,你不受它的約束,那它就是庫。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70006413/viewspace-2929175/,如需轉載,請註明出處,否則將追究法律責任。

相關文章