面向對象技術
面向對象技術使
軟體的開發超越了過程式
編程,而進入了簡化應用程式開發的可重用編程世界。不象舊的
編程方式,當程式的體積增長時,程式維護和調試並不變得更複雜。對象技術在兩個級別發揮作用:在數據級別,對象技術可以集成一個機構中的許多不同類型的信息,過去的信息已經不再兼容了。在程式開發級別,對象技術提供模組化程式構造,這時,
程式設計師在現有對象的基礎之上進行開發。對象可以被其他對象再使用,以利用它們的過程,從而消除了當再次需要它們的時候,必須每次都重寫這些
代碼。由於無需改變或分解整個系統,所以再設計或擴展系統是很容易的。實際上,是放棄或修改這些模組,並且增加新的模組以提供增強的功能。
一個對象是一個完整的數據分組,它包括對數據進行處理的功能。在一個
面向對象的環境,對象的數目是數不清的。它們可能包括一個
資料庫的記錄、一個檔案、一個物理資源、甚至是一個用戶(它是用戶的登錄帳戶)。為了使開發人員使用
面向對象程式語言工作,對象是一個自滿足模組,它包含數據、以及數據的結構、和處理數據的功能。
在
面向對象的環境,首先定義基本的對象,然後圍繞這些對象建造系統。有許多潛在對象,並且它們可以歸化到定義不同類型對象的層次化類(hierarchicalclasses)。父類可以對子類傳遞特性。讓我們來考慮一個類“people”,它擁有兩個子類“male”和“female”。這些子類又可以擁有它們自己的子類。每個子類都有從它的父親處繼承來的綜合特徵,以及它們自己的專有特徵。另外,一些繼承來的特徵由於它們對子類不合適,而會被阻擋。這和
計算機如何關聯昵?記住,現在我們在討論存儲許多不同
數據類型,和訪問許多不同類型應用程式數據的途徑。通過按這種方式對數據分類,我們可以在一個對象內,直接包括進行抽取、顯示、合併和列印的過程數據。如果需要,對數據進行分類,可以簡化構造過程和改造(
revision)過程。例如,一個
數據塊對象可能包括一個對這些數據按特定的方式進行排序的過程,它可以被許多不同的使用這個數據的應用程式所激活。
下面是對象
類和對象實例:對象類一個類定義了一組對象。類具有行為(be-havoir),它描述一個對象能夠做什麼以及做的方法(method),它們是可以對這個對象進行操作的程式和過程。對象實例一個對象是一個類的一個實例,它代表一個現實物理“事件”,例如在一個財物
系統資料庫中的一個顧客或一個庫存部分。類的繼承(classinheritance)是一個重要的概念,它為一個子類繼承它的父類的內置描述提供了途徑。在父類中使用的
代碼被向下傳給這個類指定的一個類(子類)。例如,一個
面向對象的
資料庫可以有一個稱為“client”的類,這個類有兩個子類,分別稱為“company”和“individual”。首先,創立稱為“client”的對象。它包含一個結構和一些過程,這些過程處理數據和從對象之外獲得信息。然後,company和individual對象作為client的子類進行定義。作為一個子類,它們繼承client對象的結構和特徵,但是這些特徵中的一些可能被
禁止,或可以增加一些附加特徵。例如,company子類可以具有一個特定的折算,而individua1子類卻不具有。如果你需要一個關於客戶的列表,你可以請求client對象進行列表。然而,如果你希望知道
客戶的賬目平衡,你就需要從每個包含客戶平衡的子類對象獲得信息。
對象包含
數據和過程,並且當被請求時提供
信息。想像一個包含數據的箱子,它有一些按鈕,你可以按這些按鈕來對數據運行過程。方法是,一些對對象進行操作的過程或程式,它們可以使對象根據對象的內部
代碼和結構來以特定的形式進行動作。相似地,可以對對象的不同的類進行操作。有一個概念稱為
多態性(poly-morphism)或
重載(overloading)。使用
多態性,一組通用的方法可以在很大範圍的類上進行操作。然而,具有相同名字和稱呼的方式卻可能誘發不同的事情。例如,在文本數據的“next”導致
游標跳到下一個工作,而在
電子表格的“next”卻導致游標跳到下一個單元。
對象通過傳送訊息與另一個對象對話。這些訊息在本質上是通過按下對象上的“按鈕”從對象請求過程。在一個網路環境,你可以查看和訊息匯流排相連的對象。訊息傳遞為對象在一個
面向對象的分散式計算環境進行通信提供了一條有效途徑。訊息傳遞是一種存儲再
轉發方式,就象在電子函件系統中使用的那樣。訊息被從一台
計算機傳送到另一台
計算機,直到它們抵達目的地。所有這些都加到
軟體中,它們易於維護,並且在連續的基礎之上改進,即無需對整個系統進行重新設計。對象是可重用的,使得系統增長時,它易於加入系統,這是因為在現有對象中的
代碼對創造新的對象是可重用的。
對象系統是可擴展的,開發人員增加模組,而模組重用內置
數據結構,無需重編譯
作業系統。易於建造系統,這是因為面向對象對設計系統和實現系統提供了一條很自然的途徑。對象可以提供了一種通用接口,因而許多不同應用程式能夠訪問數據。也有許多不利的方面,包括大量增加了前端設計的時間,減低了性能和技術的不成熟。然而,隨著系統的成長和硬體的不斷強大,這些不利可以減退。這些缺陷,在對象系統可以在遍布分布網路上的許多不同類型的系統上向用戶提供數據這一事實面前,也會減少。
分散式環境
對象技術被認為對實現未來的
分散式系統是很有生命力的。這樣,系統的複雜性可以通過實現訊息傳遞服務(如對象請求代管器)的模型而簡化。對象只是簡單地請求服務,並且其他對象提供這些服務。開發人員不需要更多地知道對象將在上面通信的系統情況。事實上,對象技術為局部使用、將來擴展到異構分散式環境、設計套用提供了途徑。
在這一領域的發展包括:對象管理組織(
OMG)的公用對象請求代管器
體系結構(
CORBA)是一種規範,它的設計是為對象產生和接收請求提供了途徑。Microsoft的對象連結和嵌入(
OLE),為在單一台式系統或一個網路上的應用程式共享數據提供了一條途徑。
IBM的系統對象模型(SOM)和
分散式系統對象模型(DSOM)提供了低級對象語言OpenDoc是一種為共享文本、圖形和多媒體對象,而由Apple、Borland、IBM、Novel1和WordPerfect等公司開發的開發環境。