Framework 中文常譯為「框架」、「架構」而 Library 中文常譯為「庫」。

很多 Framework 因為結構上的需求而帶有大量的 Library 所以很容易讓人對於這兩者的概念混淆不清。

Framework 在字義上帶有結構的意義。

它具備引導的作用,並透過預先規劃好的結構或機制以協助改善開發上的問題,例如:結構性、彈性、可維護性等等;為了引導到正確的開發方向 Framrework 甚至有時會做出適度或大量的限制開發方向、方法,在限制上來說意義就吻合了中文字義「框架」;對於結構而言,Framrewok 某些地方沒有顯著的以限制的方式引導,而是提供了某些機制,例如:.Net Framework 中提供了事件機制;Framework 中可能會包含大量類別或函數,這其中有一部是所謂的Library,另一部分則是因應 Framework 結構或機制而存在,例如:事件經常也是一個類別。

而 Library 在字義上帶有收藏或集合的意義。

因此 Library 很單純的收集常用或通用程式庫,若內容物為函數則常被稱之為「函式庫」,若內容物為類別則常被稱之為「類別庫」。Library完全不理會程式結構如何開發,它很單純的只是為了完成某些較為獨立的事,也完全不會限制或引導開發邏輯或流程。

個人觀點,僅供參考

2010/02/26 補充、 修改

Tagged : ,

你可能會感興趣

“Framework 與 Library 的概念與不同” 目前共有 4 則迴響

  1. 我倒是認為不同的面向會看到不同的結果, Framework 的定義其實可大可小。

    如果把 PHP 能直接與 Web Server 溝通的角度來看 (例如它提供了 $_GET, $_POST 這些超全域變數讓我們直接取得 Request ) ,那麼在廣義上來說,它多少扮演了 Web Framework 的角色。

    就像 Zend Framework 在一開始時很多人認為它只不過就是個和 PEAR 一樣的 Library ,只因為它在舊版本裡沒有提供像 CakePHP 那種快速讓大家可以開發的工具及完整的目錄結構。

    然而 ZF 其實和 PHP 一樣的,它們並不是沒有結構,而是把結構做了最小幅度的規範,讓程式開發者可以自由發揮自己的想法。

    也就是說,只是在限制的層次有所不同,但它們的確還是存在著 Framework 的影子。

    以上為個人或有謬誤的想法,歡迎指正 :)

  2. 嗨 jaceju

    「不同的面向會看到不同的結果」< < 我完全接受這句話

    定義這種東西本來就是看人如何解釋

    聽你這麼一說,我也能認同你的看法
    或許在廣義之下許多東西可視為一種 Framwork :)

留下迴響