1. 程式人生 > >框架:初識框架

框架:初識框架

總篇
第一章、初識框架

一、什麼是框架?

1.語法意義

  框架(Framework)是整個或部分系統的可重用設計,表現為一組抽象構件及構件例項間互動的方法;另一種定義認為,框架是可被應用開發者定製的應用骨架。前者是從應用方面而後者是從目的方面給出的定義。

2.現實折現

  假如你要造一輛馬車,在沒有框架的情況下,你需要自己去伐木,去把木頭做成木板,木棍,然後組成輪子,門,等部件,然後組裝起來,但如果你用了框架,就相當於你有現成的輪子,門等部件,你只需要組裝一下就可以了。

二、什麼是類庫?

1.語法意義

  類庫就是一些類的集合,只要我們將一些可以複用的類集中放到一個Library中,我們就可以稱其為一個類庫。類庫中的許多元素(如類、結構、介面、列舉、委託等)之間可能有一些關聯,但這些關聯通常用於支援一個類概念或介面概念的完整表達。如果我們從一個更高的視角來審視類庫,可以發現類庫中的一個個“完整的概念”之間是無關的或是關係鬆散的。

三、框架與類庫的區別

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

  • 從結構上說,框架內部是高內聚的,而類庫內部則是相對鬆散的。
  • 框架封裝了處理流程的控制邏輯,而類庫幾乎不涉及任何處理流程和控制邏輯。正是由於框架對處理流程的控制邏輯進行了封裝,才使得框架成為一個應用的骨架。框架中的處理流程和控制邏輯需要經過精心的設計,因為所有使用了該框架的應用程式都會複用該設計。
  • 框架具有IOC(控制反轉)能力,而類庫沒有。 IOC,即俗稱的好萊塢模式(Don’t call us, we will call you)。對於類庫中的元素來說,通常都是由我們的應用來呼叫它;而框架具有這種能力――在適當的時候呼叫我們應用中的邏輯。這種能力是通過框架擴充套件點(或稱為“插槽”)來做到的――具體的應用通過擴充套件點注入自己的邏輯,而在適當的時候,框架會呼叫這個擴充套件點中已註冊的邏輯。實際上,.NET中的事件(event)釋出、預定機制就是IOC的一個代表性例子。
  • 框架專注於特定領域,而類庫卻是更通用的。框架著力於一個特定領域的解決方案的完整表達,而類庫幾乎不針對任何特定領域。比如,本書中提到的通訊框架只適用於需要在TCP/UDP基礎上直接構建通訊的應用程式,而像正則表示式這樣的類庫卻可以使用在各種不同的應用中。
  • 框架通常建立在眾多類庫的基礎之上,而類庫一般不會依賴於某框架。