軟體框架和類庫的區別

2022-08-02 15:18:14 字數 1036 閱讀 7600

本文源自《.net通訊框架的設計、實現與應用》書稿第一章內容

類庫是一些類的集合,只要我們將一些可以復用的類集中放到乙個library中,我們就可以稱其為乙個類庫。

類庫中的許多元素(如類、結構、介面、列舉、委託等)之間可能有一些關聯,但這些關聯通常用於支援乙個類概念或介面概念的完整表達。

如果我們從乙個更高的視角來審視類庫,可以發現類庫中的乙個個「完整的概念」之間是無關的或是關係鬆散的。

再來說框架,框架的第一含義是乙個骨架,它封裝了某領域內處理流程的控制邏輯,所以我們經常說框架是乙個半成品的應用。

由於領域的種類是如此眾多,所以框架必須具有針對性,比如,專門用於解決底層通訊的框架,或專門用於醫療領域的框架。

框架中也包含了很多元素,但是這些元素之間關係的緊密程度要遠遠大於類庫中元素之間的關係。框架中的所有元素都為了實現乙個共同的目標而相互協作。

框架與類庫的區別主要表現在以下幾個方面:

(1)從結構上說,框架內部是高內聚的,而類庫內部則是相對鬆散的。

(2)框架封裝了處理流程的控制邏輯,而類庫幾乎不涉及任何處理流程和控制邏輯。

框架中的處理流程和控制邏輯需要經過精心的設計,因為所有使用了該框架的應用程式都會復用該設計。

(3)框架具有ioc(控制反轉)能力,而類庫沒有。ioc,即俗稱的好萊塢模式(don』t

call us, we will call

you)。

對於類庫中的元素來說,通常都是由我們的應用來呼叫它;

而框架具有這種能力――在適當的時候呼叫我們應用中的邏輯。這種能力是通過框架擴充套件點(或稱為「插槽」)來做到的――具體的應用通過擴充套件點注入自己的邏輯,而在適當的時候,框架會呼叫這個擴充套件點中已註冊的邏輯。

(4)框架專注於特定領域,而類庫卻是更通用的。

框架著力於乙個特定領域的解決方案的完整表達,而類庫幾乎不針對任何特定領域。比如,本書中提到的通訊框架只適用於需要在tcp/udp基礎上直接構建通訊的應用程式,而像正規表示式這樣的類庫卻可以使用在各種不同的應用中。

(5)框架通常建立在眾多類庫的基礎之上,而類庫一般不會依賴於某框架。

框架和庫的區別

網上蒐集拼湊總結所得,侵刪。當乙個程式設計新手真正想要寫出一些可以用的程式,比較快速的方法是在乙個框架的基礎上完成。不過另一方面對於新手來說,用框架的缺點就是,用完了框架,可能會發現還是不理解整個系統,因為只新增 是不夠的,要理解系統,就必須要理解程序的執行流程。框架 的定義是什麼?按照我的理解,如...

庫和框架的區別

庫和框架都是一種有別於軟體 面向程式開發者的產品形式。正因為如此,也有很多人誤以為庫就是框架,或者認為指定語言的庫就是框架。庫的英語為 library 簡寫 lib 框架的英語為 framework。庫是將 集合成的乙個產品,供程式設計師呼叫。物件導向的 組織形式而成的庫也叫類庫。面向過程的 組織形...

也談設計模式,架構,框架和類庫的區別

以下摘取了片段 看了廖大的 設計模式,框架,架構 感覺受益良多,下面我打算用乙個比方來詮釋我的理解 我模擬的例子是蓋房子,我先從設計模式說起。人類從住山洞到現在的住高樓大廈中間的居住形態經歷了無數次的演變,不同的人用自己的智慧型詮釋了對居住環境的理解,並且由於有了文字這些經驗都被記錄下來了。現在打個...