對(duì)象類 一個(gè)類定義了一組對(duì)象。類具有行為(be-havoir),它描述一個(gè)對(duì)象能夠做什么以及做的方法(method),它們是可以對(duì)這個(gè)對(duì)象進(jìn)行操作的程序和過程。對(duì)象實(shí)例 一個(gè)對(duì)象是一個(gè)類的一個(gè)實(shí)例,它代表一個(gè)現(xiàn)實(shí)物理“事件”,例如在一個(gè)財(cái)物系統(tǒng)數(shù)據(jù)庫(kù)中的一個(gè)顧客或一個(gè)庫(kù)存部分。類的繼承(class inheritance)是一個(gè)重要的概念,它為一個(gè)子類繼承它的父類的內(nèi)置描述提供了途徑。在父類中使用的代碼被向下傳給這個(gè)類指定的一個(gè)類(子類)。 [1] 例如,一個(gè)面向?qū)ο蟮臄?shù)據(jù)庫(kù)可以有一個(gè)稱為“client”的類,這個(gè)類有兩個(gè)子類,分別稱為“company”和“individual”。首先,創(chuàng)立稱為“client”的對(duì)象。它包含一個(gè)結(jié)構(gòu)和一些過程,這些過程處理數(shù)據(jù)和從對(duì)象之外獲得信息。然后,company和individual對(duì)象作為client的子類進(jìn)行定義。作為一個(gè)子類,它們繼承client對(duì)象的結(jié)構(gòu)和特征,但是這些特征中的一些可能被屏蔽,或可以增加一些附加特征。例如,company子類可以具有一個(gè)特定的折算,而individua1子類卻不具有。如果你需要一個(gè)關(guān)于客戶的列表,你可以請(qǐng)求client對(duì)象進(jìn)行列表。然而,如果你希望知道客戶的賬目平衡,你就需要從每個(gè)包含客戶平衡的子類對(duì)象獲得信息。 [1] 對(duì)象包含數(shù)據(jù)和過程,并且當(dāng)被請(qǐng)求時(shí)提供信息。想象一個(gè)包含數(shù)據(jù)的箱子,它有一些按鈕,你可以按這些按鈕來對(duì)數(shù)據(jù)運(yùn)行過程。方法是,一些對(duì)對(duì)象進(jìn)行操作的過程或程序,它們可以使對(duì)象根據(jù)對(duì)象的內(nèi)部代碼和結(jié)構(gòu)來以特定的形式進(jìn)行動(dòng)作。相似地,可以對(duì)對(duì)象的不同的類進(jìn)行操作。有一個(gè)概念稱為多態(tài)性(poly-morphism)或重載(overloading)。使用多態(tài)性,一組通用的方法可以在很大范圍的類上進(jìn)行操作。然而,具有相同名字和稱呼的方式卻可能誘發(fā)不同的事情。例如,在文本數(shù)據(jù)的“next”導(dǎo)致光標(biāo)跳到下一個(gè)工作,而在電子表格的“next”卻導(dǎo)致光標(biāo)跳到下一個(gè)單元。
對(duì)象通過發(fā)送消息與另一個(gè)對(duì)象對(duì)話。這些消息在本質(zhì)上是通過按下對(duì)象上的“按鈕”從對(duì)象請(qǐng)求過程。在一個(gè)網(wǎng)絡(luò)環(huán)境,你可以查看和消息總線相連的對(duì)象,如圖O-4所示。消息傳遞為對(duì)象在一個(gè)面向?qū)ο蟮姆植际接?jì)算環(huán)境進(jìn)行通信提供了一條有效途徑。消息傳遞是一種存儲(chǔ)再轉(zhuǎn)發(fā)方式,就象在電子函件系統(tǒng)中使用的那樣。消息被從一臺(tái)計(jì)算機(jī)傳送到另一臺(tái)計(jì)算機(jī),直到它們抵達(dá)目的地。 [1] 所有這些都加到軟件中,它們易于維護(hù),并且在連續(xù)的基礎(chǔ)之上改進(jìn),即無(wú)需對(duì)整個(gè)系統(tǒng)進(jìn)行重新設(shè)計(jì)。對(duì)象是可重用的,使得系統(tǒng)增長(zhǎng)時(shí),它易于加入系統(tǒng),這是因?yàn)樵诂F(xiàn)有對(duì)象中的代碼對(duì)創(chuàng)造新的對(duì)象是可重用的。 [1] 對(duì)象系統(tǒng)是可擴(kuò)展的,開發(fā)人員增加模塊,而模塊重用內(nèi)置數(shù)據(jù)結(jié)構(gòu),無(wú)需重編譯操作系統(tǒng)。易于建造系統(tǒng),這是因?yàn)槊嫦驅(qū)ο髮?duì)設(shè)計(jì)系統(tǒng)和實(shí)現(xiàn)系統(tǒng)提供了一條很自然的途徑。對(duì)象可以提供了一種通用接口,因而許多不同應(yīng)用程序能夠訪問數(shù)據(jù)。
也有許多不利的方面,包括大量增加了前端設(shè)計(jì)的時(shí)間,減低了性能和技術(shù)的不成熟。然而,隨著系統(tǒng)的成長(zhǎng)和硬件的不斷強(qiáng)大,這些不利可以減退。這些缺陷,在對(duì)象系統(tǒng)可以在遍布分布網(wǎng)絡(luò)上的許多不同類型的系統(tǒng)上向用戶提供數(shù)據(jù)這一事實(shí)面前,也會(huì)減少。 [1] Objects in Distributed Environments 分布式環(huán)境中的對(duì)象對(duì)象技術(shù)被認(rèn)為對(duì)實(shí)現(xiàn)未來的分布式系統(tǒng)是很有生命力的。這樣,系統(tǒng)的復(fù)雜性可以通過實(shí)現(xiàn)消息傳遞服務(wù)(如對(duì)象請(qǐng)求代管器)的模型而簡(jiǎn)化。對(duì)象只是簡(jiǎn)單地請(qǐng)求服務(wù),并且其他對(duì)象提供這些服務(wù)。開發(fā)人員不需要更多地知道對(duì)象將在上面通信的系統(tǒng)情況。事實(shí)上,對(duì)象技術(shù)為局部使用、將來擴(kuò)展到異構(gòu)分布式環(huán)境、設(shè)計(jì)應(yīng)用提供了途徑。 [1] 在這一領(lǐng)域的發(fā)展包括:對(duì)象管理組織(OMG)的公用對(duì)象請(qǐng)求代管器體系結(jié)構(gòu)(CORBA)是一種規(guī)范,它的設(shè)計(jì)是為對(duì)象產(chǎn)生和接收請(qǐng)求提供了途徑。Microsoft的對(duì)象鏈接和嵌入(OLE),為在單一臺(tái)式系統(tǒng)或一個(gè)網(wǎng)絡(luò)上的應(yīng)用程序共享數(shù)據(jù)提供了一條途徑。IBM的系統(tǒng)對(duì)象模型(SOM)和分布式系統(tǒng)對(duì)象模型(DSOM)提供了低級(jí)對(duì)象語(yǔ)言O(shè)penDoc是一種為共享文本、圖形和多媒體對(duì)象,而由Apple、Borland、IBM、Novel1和WordPerfect等公司開發(fā)的開發(fā)環(huán)境。 [1] 相關(guān)條目:Cario;Common Object Model 公用對(duì)象模型;Common Object Request Broker Architecture 公用對(duì)象請(qǐng)求代管器體系結(jié)構(gòu);Compound Documents 復(fù)合文檔;Object Broker,DEC DEC的Object Broker;Object Linking and Embedding對(duì)象鏈接和嵌入;Object Management Architecture對(duì)象管理體系結(jié)構(gòu);Object-Oriented Interfaces and Operating Systems面向?qū)ο蟮慕涌诤筒僮飨到y(tǒng);Object Request Broker 對(duì)象請(qǐng)求代管器;Workplace OS。