首頁 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實(shí)用文檔 繽紛校園 英語學(xué)習(xí)
2010考研 | 自學(xué)考試 | 成人高考 | 專 升 本 | 法律碩士 | MBA/MPA | 中 科 院
四六級 | 商務(wù)英語 | 公共英語 | 職稱日語 | 職稱英語 | 博思 | 口譯筆譯 | GRE GMAT | 日語 | 托福
雅思 | 專四專八 | 新概念 | 自考英語 | 零起點(diǎn)英、、韓語 | 在職申碩英語
在職攻碩英語 | 成人英語三級
等級考試 | 水平考試 | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證
公務(wù)員 | 報關(guān)員 | 報檢員 | 外銷員 | 司法考試 | 導(dǎo)游考試 | 教師資格 | 國際商務(wù)師 | 跟單員
單證員 | 物流師 | 價格鑒證師 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 人力資源管理師 | 管理咨詢師
期貨從業(yè)資格 | 社會工作者
會計職稱 | 注會CPA | 經(jīng)濟(jì)師 | 統(tǒng)計師 | 注冊稅務(wù)師 | 評估師 | 精算師 | 高會 | ACCA | 審計師
法律顧問 | 會計證
一級建造師 | 二級建造師 | 造價師 | 監(jiān)理師 | 安全師 | 咨詢師 | 結(jié)構(gòu)師 | 建筑師 | 安全評價師
房地產(chǎn)估價師 | 土地估價師 | 設(shè)備監(jiān)理師 | 巖土工程師 | 質(zhì)量資格 | 房地產(chǎn)經(jīng)紀(jì)人 | 造價員
投資項(xiàng)目管理 | 土地代理人 | 環(huán)保師 | 環(huán)境影響評價 | 物業(yè)管理師 | 城市規(guī)劃師 | 公路監(jiān)理師
公路造價工程師 | 招標(biāo)師
執(zhí)業(yè)護(hù)士 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 衛(wèi)生資格
您現(xiàn)在的位置: 考試吧(Exam8.com) > 軟件水平考試 > 系統(tǒng)分析師 > 正文

C++Q&A:控件和組件概念淺析

  我正在學(xué)習(xí) Microsoft .NET 框架,不太理解控件和組件之間的差別。我知道這些術(shù)語可以互用,但什么時候從 Control 派生,什么時候從 Component 派生呢?
好問題!簡單說來,控件就是具有用戶界面的組件。要說的具體一點(diǎn),就得回顧早期 Windows 的歷史根源,當(dāng)時控件指任何子窗口——按鈕、列表框、編輯框或者某個對話框中的靜態(tài)文本。從概念上講,這些窗口——控件——類似用來操作收音機(jī)或小電器的旋鈕和按鈕。隨著控件數(shù)量的增加(組合框、日期時間控件等等),控件逐漸成為子窗口的代名詞,無論是用在對話框中還是用在其它種類的主窗口中。沒過多久 BASIC 程序員開始編寫他們自己專用的控件,自然而然地人們便想到共享這些控件。共享代碼的方法之一是通過磁盤拷貝,但那樣顯然效率低下。必須要有一種機(jī)制使開發(fā)者建立的控件能夠在其它程序員的應(yīng)用中輕而易舉地插入,這便是VBA控件,OLE控件,OCX和最后ActiveX 控件的動機(jī)。
  這就是控件和組件之間產(chǎn)生混淆之所在。因?yàn)闉榱私鉀Q控件的可復(fù)用問題,所有這些技術(shù)必須首先解決更為一般的組件重用問題。(COM,如果你還記得它的話,意思是組件對象模型)。在軟件行話中,組件這個術(shù)語指任何可復(fù)用的對象或任何可與其它對象交互的代碼體。子程序的發(fā)明,曾經(jīng)一度成為程序員趨之若鶩的軟件工程圣杯:一種統(tǒng)一的編程理論,它使程序員從基本構(gòu)建塊——也就是用所選語言編寫的各種組件建立大型系統(tǒng)。從子程序演變到OOP,到DLLs,再到COM,再到.NET框架的每一種新的編程范例都代表了一種不同的提供可重用性的方案。VBX使用DLLs的固化名稱。COM使用接口和IUnknown。.NET框架使用的中間語言(MSIL)層和公共語言運(yùn)行時(CLR)來提供統(tǒng)一的粘合。
  因此,控件是組件的一個主要樣本(并且歷史上曾驅(qū)動著組件的開發(fā)),控件又不僅僅是唯一的一種組件。組件不需要顯示任何信息或用戶界面。組件可能實(shí)現(xiàn)科學(xué)計算,收集性能數(shù)據(jù),計算1971年1月1日到現(xiàn)在的毫秒數(shù),仰或是讀取布什總統(tǒng)競選活動箱里的美金數(shù)。Figure 4 顯示了 Visual Studio .NET 中的非控件組件例子。

Figure 4 組件

  在 .NET 框架中,術(shù)語控件和組件為 .NET 賦予了專門的意義。Component 類為被用于設(shè)計層面的對象如 Windows Forms Designer (Windows 窗體設(shè)計器)或 Web Forms Designer (Web 窗體設(shè)計器)提供了基本實(shí)現(xiàn)。某個 Component 是任何可以被拽到某個窗體的任何東西。Component 類實(shí)現(xiàn)IComponent,ISite 和 IContainer。這些接口比起其來自 OLE 時期的 COM 堂兄弟要簡單得多。 IContainer 比起帶有 Add/Remove 方法的組件列表以及組件屬性來要稍微復(fù)雜一點(diǎn),它獲得的組件是一個 ComponentCollection (組件集合)。

轉(zhuǎn)帖于:軟件水平考試_考試吧
文章搜索
C++Q&A:控件和組件概念淺析網(wǎng)友評論網(wǎng)友評論
版權(quán)聲明 --------------------------------------------------------------------------------------
    如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系,我們將會及時處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請注明出處。
 gaoxiaoliang