- Java組件設(shè)計(jì)
- 孔德生編著
- 1682字
- 2018-12-29 19:21:01
1.2 組件定義及與其相關(guān)概念的澄清
那么,到底什么是組件呢?框架又是什么意思?類是組件嗎?控件又指什么?元件、構(gòu)件這些概念又如何理解?
這些概念,都沒有一個(gè)統(tǒng)一的標(biāo)準(zhǔn)答案,因此在軟件開發(fā)過程中,這些術(shù)語經(jīng)常被混淆,筆者根據(jù)自己的工作體會(huì),對這些概念解釋如下:
對象
面向?qū)ο笳Z言(Object-Oriented Language)是一種以對象作為基本程序結(jié)構(gòu)單位的程序設(shè)計(jì)語言,指用于描述的設(shè)計(jì)是以對象為核心,而對象是程序運(yùn)行時(shí)刻的基本成分。對象都具有狀態(tài)和行為。對象,也被翻譯為實(shí)例、物件。
類
面向?qū)ο蟮母拍睢n愂且环N對包括數(shù)據(jù)成員、函數(shù)成員和嵌套類型進(jìn)行封裝的數(shù)據(jù)結(jié)構(gòu)。在程序運(yùn)行期間,由類創(chuàng)建成對象的過程,被稱為類的實(shí)例化。因此,對象是個(gè)運(yùn)行期的術(shù)語,類是個(gè)編譯期的術(shù)語。類本身就是可重用的直接實(shí)現(xiàn)手段。
控件
控件的英文是Control,控件就是具有用戶界面的組件。要說得具體一點(diǎn),就得回顧早期Windows的歷史根源,當(dāng)時(shí)控件指任何子窗口:按鈕、列表框、編輯框或者某個(gè)對話框中的靜態(tài)文本。從概念上講,這些窗口——控件——類似用來操作收音機(jī)或小電器的旋鈕和按鈕。隨著控件數(shù)量的增加(組合框、日期時(shí)間控件等),控件逐漸成為子窗口的代名詞,無論用在對話框中還是用在其他種類的主窗口中。沒過多久Basic程序員開始編寫他們自己專用的控件,自然而然地,人們便想到共享這些控件。共享代碼的方法之一是通過磁盤拷貝,但顯然效率低下。必須要有一種機(jī)制使開發(fā)者建立的控件能夠在其他程序員的應(yīng)用中輕而易舉地插入,這便是VBA控件、OLE控件、OCX及至最終ActiveX控件產(chǎn)生的動(dòng)機(jī)。因此,控件是組件的一個(gè)主要樣本(并且歷史上曾驅(qū)動(dòng)著組件的開發(fā)),控件又不僅僅是唯一的一種組件。
元件
元件是個(gè)電子行業(yè)的術(shù)語,是電子元件的簡稱。也有一些軟件借用這個(gè)術(shù)語,指特定的可重用控件。
構(gòu)件
構(gòu)件是系統(tǒng)中實(shí)際存在的可更換部分,它實(shí)現(xiàn)特定的功能,符合一套接口標(biāo)準(zhǔn)并實(shí)現(xiàn)一組接口。構(gòu)件代表系統(tǒng)中的一部分物理實(shí)施,包括軟件代碼(源代碼、二進(jìn)制代碼或可執(zhí)行代碼)或其等價(jià)物(如腳本或命令文件)。
通常認(rèn)為,構(gòu)件是特定軟件開發(fā)環(huán)境中、滿足指定規(guī)范的軟件部分,涵蓋了設(shè)計(jì)、開發(fā)、物理等范疇。
框架
框架的英文是Framework,框架是一個(gè)應(yīng)用程序的半成品。框架提供了可在應(yīng)用程序之間共享的可復(fù)用的公共結(jié)構(gòu)。開發(fā)者把框架融入他們自己的應(yīng)用程序,并加以擴(kuò)展,以滿足他們特定的需要。框架和工具包的不同之處在于,框架提供了一致的結(jié)構(gòu),而不僅僅是一組工具類(摘自《JUnit in action中文版》)。
子系統(tǒng)
子系統(tǒng)是個(gè)在設(shè)計(jì)中使用的術(shù)語,英文是SubSystem。在軟件總體架構(gòu)中,按照功能劃分子系統(tǒng)。通常一個(gè)子系統(tǒng)包含一個(gè)或多個(gè)進(jìn)程。
模塊
模塊也是個(gè)在設(shè)計(jì)中使用的術(shù)語,英文是Module。模塊指一個(gè)子系統(tǒng)內(nèi)部,按照軟件結(jié)構(gòu)分解的功能部分。模塊會(huì)包含多個(gè)類、使用多個(gè)組件,也會(huì)與框架交互。
那么組件是什么呢?
組件
類本身是個(gè)細(xì)粒度的可重用實(shí)現(xiàn),為了解決功能或機(jī)制層面更大粒度重用的問題,又引入了組件的概念。組件的英文是Component,其邏輯結(jié)構(gòu)如圖1-2所示。

圖1-2 組件邏輯結(jié)構(gòu)圖
組件對外暴露一個(gè)或多個(gè)接口,供外界調(diào)用。組件內(nèi)部由多個(gè)類來協(xié)同實(shí)現(xiàn)指定的功能。對于復(fù)雜的組件,會(huì)包括很多類,還可能包含配置文件、界面、依賴的庫文件等,組件也可以包含或者使用其他的組件,構(gòu)成更大粒度的組件。
一些特定范疇的組件,由軟件廠家或者國際權(quán)威組織制定并頒布了組件規(guī)范,如COM、ActiveX、EJB、JavaBean等。本書討論的組件,指一般意義的自定義組件,不包括這些規(guī)范化的組件。
一個(gè)真正的軟件系統(tǒng),會(huì)涉及以上多個(gè)概念,典型的軟件系統(tǒng)靜態(tài)結(jié)構(gòu)如圖1-3所示。
圖1-3展示了一個(gè)軟件系統(tǒng),包括2個(gè)子系統(tǒng):子系統(tǒng)1和子系統(tǒng)2,其中,子系統(tǒng)1調(diào)用子系統(tǒng)2。

圖1-3 軟件系統(tǒng)靜態(tài)結(jié)構(gòu)
子系統(tǒng)1包含2個(gè)模塊:模塊1和模塊2。模塊1由兩個(gè)類(Class 1和Class 2)和一個(gè)組件(組件1)構(gòu)成,模塊2由兩個(gè)類(Class3和Class4)和兩個(gè)組件(組件2和組件3)構(gòu)成,模塊2提供一個(gè)接口給模塊1調(diào)用。模塊1和模塊2都使用了框架1。
子系統(tǒng)2包含2個(gè)模塊:模塊3和模塊4。模塊3由兩個(gè)類(Class5和Class6)和一個(gè)組件(組件4)構(gòu)成,模塊4由一個(gè)類(Class7)和一個(gè)組件(組件5)構(gòu)成。模塊4提供一個(gè)接口給模塊3調(diào)用。模塊3和模塊4都使用了框架2。
- 我的J2EE成功之路
- Getting Started with Oracle SOA B2B Integration:A Hands-On Tutorial
- 精通Excel VBA
- 自主研拋機(jī)器人技術(shù)
- SharePoint 2010開發(fā)最佳實(shí)踐
- 21天學(xué)通Java
- 中國戰(zhàn)略性新興產(chǎn)業(yè)研究與發(fā)展·智能制造
- AI 3.0
- Splunk Operational Intelligence Cookbook
- Blender 3D Printing by Example
- 筆記本電腦維修90個(gè)精選實(shí)例
- 大數(shù)據(jù)案例精析
- Hands-On Dashboard Development with QlikView
- 空間機(jī)器人
- Apache Spark Quick Start Guide