庫與框架的區別

以下內容轉自:https://segmentfault.com/q/1010000000752015

Library和framework最大的區別是: inversion of control. 也就是,

your code calls a library but a framework calls your code.

什麼意思?也就是,

  • 當你在調用library的時候, 你按照自己的意願來control他(比如jQuery)。
  • 而,對於framework, 那麼control就是倒轉過來了,是他在調用你(比如bootstrap), 就像是Hollywood的一個principle: Don't call Us, We'll call You.

以下內容轉自:http://www.jianshu.com/p/99d19a4d10d8

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

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

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

框架則是爲解決一個(一類)問題而開發的產品,框架用戶一般只需要使用框架提供的類或函數,即可實現全部功能。可以說,框架是庫的升級版。
開發者在使用框架的時候,必須使用這個框架的全部代碼。

框架和庫的比較可以想像爲:

假如我們要買一臺電腦。框架爲我們提供了已經裝好的電腦,我們只要買回來就能用,但你必須把整個電腦買回來。這樣用戶自然輕鬆許多,但會導致
很多人用一樣的電腦,或你想自定義某個部件將需要修改這個框架。而庫就如自己組裝的電腦。庫爲我們提供了很多部件,我們需要自己組裝,如果某個部件

庫未提供,我們也可以自己做。庫的使用非常靈活,但沒有框架方便。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章