1.2.4 OOP的優點
OOP具有許多優點,無論是對于程序設計者或者用戶來說都是如此。面向對象為軟件產品擴展和質量保證中的許多問題提供了解決辦法。這項技術能夠大大提高程序員的生產力,并可提高軟件的質量以及降低其維護費用。其主要的優點陳列于下:
1、 通過繼承,我們可以大幅減少多余的代碼,并擴展現有代碼的用途; 2、 我們可以在標準的模塊上(這里所謂的“標準”指程序員之間彼此達成的協議)構建 我們的程序,而不必一切從頭開始。這可以減少軟件開發時間并提高生產效率;
3、 數據隱藏的概念幫助程序員們保護程序免受外部代碼的侵襲;
4、 允許一個對象的多個實例同時存在,而且彼此之間不會相互干擾; 5、 允許將問題空間中的對象直接映射到程序中;
6、 基于對象的工程可以很容易的分割為獨立的部分;
7、 以數據為中心的設計方法允許我們抓住可實現模型的更多細節;
8、 面向對象的系統很容易從小到大逐步升級;
9、 對象間通訊所使用的消息傳遞技術與外部系統接口部分的描述更簡單;
10、 更便于控制軟件復雜度。
當需要將以上所說的所有特性有機的結合于一個面向對象系統中,它們之間的相對重要性就取決于工程的類型和程序員的喜好。為了獲得上述的某些優勢,必須考慮很多事情。例如,對象庫必須可以被重用。技術還在不停的發展,現有的產品也會很快的更新換代。如果重用沒有能夠實現,那么就需要進行嚴格的控制和管理。 易于使用的開發軟件往往難以編寫。面向對象程序設計工具有望解決這個問題。
1.3 組件式GIS(ComGIS)
1.3.1 組件技術
組件技術的興起
目前,在軟件開發領域,一場新的革命正在悄悄興起,這是由日趨成熟的組件技術引發的。幾年以前,當微軟公司首先使用OLE的時候,其初衷是為了增強軟件的互操作性。然而在使用過程中,人們逐漸認識到這一技術背后的實質性內容和它在軟件開發中所扮演的重要角色。組件技術以前所未有的方式提高了軟件產業的生產效率,這一點已逐步成為軟件開發人員的共識。傳統的C/S結構、群件、中間件等大型軟件系統的構成形式,都將在組件的基礎上重新構造。 組件技術使近二十年來興起的面向對象技術進入到成熟的實用化階段。在組件技術的概念模式下,軟件系統可以被視為相互協同工作的對象集合,其中每個對象都會提供特定的服務,發出特定的消息,并且以標準形式公布出來,以便其他對象了解和調用。組件間的接口通過一種與平臺無關的語言IDL(InterfaceDefineLanguage)來定義,而且是二進制兼容的,使用者可以直接調用執行模塊來獲得對象提供的服務。早期的類庫,提供的是原代碼級的重用,只適用于比較小規模的開發形式;而組件則封裝得更加徹底,更易于使用,并且不限于C++之類的語言,可以在各種開發語言和開發環境中使用。 由于組件技術的出現,軟件產業的形式也隨之發生了很大的變化。大量組件生產商涌現出來,并推出各具特色的組件產品;軟件集成商則利用適當的組件快速生產出用戶需要的某些應用系統;大而全的通用產品逐步減少;很多相對較為專業,但用途廣泛的軟件,如GIS、語音識別系統等,都以組件的形式組裝和擴散到一般的軟件產品中。
0.1.1.1 COM與DCOM
?
COM是組件式對象模型(Component Object Model)的英文縮寫,是組件之間相互接口的規范,是OLE(Object Linking & Embedding)和ActiveX共同的基礎,其作用是使各種軟件構件和應用軟件能夠用一種統一的標準方式進行交互。COM不是一種面向對象的語言,而是一種與源代碼無關的二進制標準。COM所建立的是一個軟件模塊與另一個軟件模塊之間的鏈接,當這種鏈接建立之后,模塊之間就可以通過稱之為“接口”的機制來進行通信。COM標準增加了保障系統和組件完整的安全機制,并擴展到分布式環境。它定義了軟件組件的接口
COM本質上仍然是客戶/服務器模式。客戶(通常是應用程序)請求創建COM對象并通過COM對象的接口操縱COM對象。服務器根據客戶的請求創建并管理COM對象。客戶和服務器這兩種角色并不是絕對的。
基于分布式環境下的COM被稱作DCOM(Distribute COM,分布式構件對象模型)。 DCOM是ActiveX的基礎,它實現了COM對象與遠程計算機上的另一個對象之間直接進行交互。DCOM規范定義了分散對象創建和對象間通信的機制,規范本身并不依賴于任何特定的編程語言和操作系統,但目前該標準只在Microsoft Windows平臺實現,這就意味著其它的操作系統平臺(如UNIX)目前還不支持ActiveX。 DCOM的實現采用了DCOM庫的形式,當DCOM客戶對象需要DCOM服務器對象的服務時,DCOM庫負責生成DCOM服務器對象并在客戶對象和服務器對象之間建立初始連接,一旦返回服務器對象指針,DCOM庫就不再參與客戶對象與服務器對象之間的工作,兩個對象之間可以自由地進行通信。
DCOM接口實際上時邏輯上和語義上相關聯的函數集。服務器對象通過DCOM接口為客戶對象提供服務,客戶對象不需了解服務器對象的內部數據表示。接口可以看成兩個軟件構件之間的一種協議,協議表明服務器對象為客戶對象提供一種且僅此一種服務。接口采用全局唯一標識符(GUID)來保證服務的唯一性。通常的DCOM構件提供多種服務,那么服務器對象為每一種服務實現一個接口。當客戶對象指針指向相應的服務器對象時,它就激活服務器對象接口的相應函數。具體過程是:客戶對象通過DCOM對象必須支持的IunKnown接口獲得其它接口的指針。客戶對象也許并不知道服務器對象的每個接口,但這并不妨礙客戶對象對服務器對象的使用,它只
用它知道的接口。當客戶對象用完服務器對象的服務時,它會通知服務器對象,服務器對象就釋放它所占有的內存。
DCOM的好處是顯而易見的。由于接口的定義和功能保持不變,DCOM構件開發者可以改變接口功能、為對象增加新功能、用更好的對象來代替原有對象,而建立在構件基礎上的應用程序幾乎不用修改,大大提高了代碼的重用性
評論
查看更多