庫和框架的區別

本文面向玩代碼玩的蛋疼的讀者。程序員

庫和框架都是一種有別於軟件、面向程序開發者的產品形式。正由於如此,也有不少人誤覺得庫就是框架,或者認爲指定語言的庫就是框架。架構

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

庫是將代碼集合成的一個產品,供程序員調用。面向對象的代碼組織形式而成的庫也叫類庫。面向過程的代碼組織形式而成的庫也叫函數庫。
在函數庫中的可直接使用的函數叫庫函數。開發者在使用庫的時候,只須要使用庫的一部分類或函數,而後繼續實現本身的功能。函數

框架則是爲解決一個(一類)問題而開發的產品,框架用戶通常只須要使用框架提供的類或函數,便可實現所有功能。能夠說,框架是庫的升級版。
開發者在使用框架的時候,必須使用這個框架的所有代碼。學習

框架和庫的比較能夠想像爲:spa

假如咱們要買一臺電腦。框架爲咱們提供了已經裝好的電腦,咱們只要買回來就能用,但你必須把整個電腦買回來。這樣用戶天然輕鬆許多,但會致使
不少人用同樣的電腦,或你想自定義某個部件將須要修改這個框架。而庫就如本身組裝的電腦。庫爲咱們提供了不少部件,咱們須要本身組裝,若是某個部件
庫未提供,咱們也能夠本身作。庫的使用很是靈活,但沒有框架方便。設計

 

框架經過封裝處理流程的控制邏輯,使它對開發者透明,來簡化開發工做。這種封裝也是框架和類庫(class library)的區別之一。類庫由許多現成的、供開發者用於構建應用的組件組成,可是,開發者必須理解不一樣組件之間的關係,並編寫處理流程代碼把衆多組件組織起來。框架則不一樣,它經過預先把衆多組件組織在一塊兒的方式,封裝了處理流程的控制邏輯;所以,開發者就不用再編寫控制邏輯來組織組件之間的交互了。……對象

 

……應用開發者使用類庫這種方法時,必須編寫管理類庫中不一樣組件實例(instance)的控制流程。爲此,應用開發者必須充分理解每一個相關組件,以及組織組件協做所必需的業務邏輯。而使用框架這種方法時,因爲大部分處理流程已經被框架管理了起來,因此開發者須要編寫的控制代碼就很是少。因爲應用框架隱藏了不一樣組件之間的處理流程,這就免去了開發者編寫協調邏輯(coordination logic)之苦,也不用經歷編寫這些協調代碼的學習曲線了。既然處理流程的控制邏輯從應用層移到了應用框架層,那麼框架的設計人員就要運用其架構和領域知識,來定義框架內的組件該如何協做;而使用框架的開發者,幾乎無須知道框架組件如何協做,就能高效地開發應用。blog

 

因而可知,從重用的角度來比較,框架提供的重用性比類庫更大。類庫的目標是提供通用的類,若是是Utility類的狀況(包含多個static方法),將其目標理解成提供通用的函數(就像C語言時代的函式庫同樣)也何嘗不可;而框架的目標是提供在某領域內通用的軟件系統半成品(或子系統半成品)。開發

 

轉自sauzny  http://sauzny.iteye.com/blog/1699880

相關文章
相關標籤/搜索