Component Object Model

基本介紹

  • 中文名組件對象模型
  • 外文名:Component Object Model
  • 縮寫:COM
  • 優點:隨時間的流逝而發展進化
組件概述,技術套用,組件優點,

組件概述

COM是Component Object Model (組件對象模型)的縮寫。
用戶需要什麼樣的軟體產品?這是一個復選題,但高效,健壯是肯定會被選中的。作為一名軟體開發人員如何做才能滿足用戶的需要呢?必須要保證升級套用時不破壞與以前版本的向後兼容性。必須做到擴展系統服務時不依賴特定的作業系統。面向對象的程式設計顯然是一次革命性的改變。採用面向對象的設計方法我們可以很容易的把要解決的問題事物抽象成各種類,並將內部動作封裝隱藏起來,只提供一些接口。但這並沒有完全解決我們的問題。昨天我在《程式設計師》雜誌上看到,現在是後OO時代,那OO以後是什麼呢?應該是面向組件吧。

技術套用

COM是微軟公司為了計算機工業的軟體生產更加符合人類的行為方式開發的一種新的軟體開發技術。在COM構架下,人們可以開發出各種各樣的功能專一的組件,然後將它們按照需要組合起來,構成複雜的套用系統。由此帶來的好處是多方面的:可以將系統中的組件用新的替換掉,以便隨時進行系統的升級和定製;可以在多個套用系統中重複利用同一個組件;可以方便的將套用系統擴展到網路環境下;COM與語言,平台無關的特性使所有的程式設計師均可充分發揮自己的才智與專長編寫組件模組;等等。
COM是開發軟體組件的一種方法。組件實際上是一些小的二進制可執行程式,它們可以給應用程式,作業系統以及其他組件提供服務。開發自定義的COM組件就如同開發動態的,面向對象的API。多個COM對象可以連線起來形成應用程式或組件系統。並且組件可以在運行時刻,在不被重新連結或編譯應用程式的情況下被卸下或替換掉。Microsoft的許多技術,如ActiveX, DirectX以及OLE等都是基於COM而建立起來的。並且Microsoft的開發人員也大量使用COM組件來定製他們的應用程式及作業系統。
COM所含的概念並不止是在Microsoft Windows作業系統下才有效。COM並不是一個大的API,它實際上像結構化編程面向對象編程方法那樣,也是一種編程方法。在任何一種作業系統中,開發人員均可以遵循“COM方法”。
一個應用程式通常是由單個的二進制檔案組成的。當編譯器生成應用程式之後,在對下一個版本重新編譯並發行新生成的版本之前,應用程式一般不會發生任何變化。作業系統,硬體及客戶需求的改變都必須等到整個應用程式被重新生成。
目前這種狀況已經發生變化。開發人員開始將單個的應用程式分隔成單獨多個獨立的部分,也既組件。這種做法的好處是可以隨著技術的不斷發展而用新的組件取代已有的組件。此時的應用程式可以隨新組件不斷取代舊的組件而漸趨完善。而且利用已有的組件,用戶還可以快速的建立全新的套用。
傳統的做法是將應用程式分割成檔案,模組或類,然後將它們編譯並連結成一個單模應用程式。它與組件建立應用程式的過程(稱為組件構架)有很大的不同。一個組件同一個微型應用程式類似,即都是已經編譯連結好並可以使用的二進制代碼,應用程式就是由多個這樣的組件打包而得到的。單模應用程式只有一個二進制代碼模組。自定義組件可以在運行時刻同其他的組件連線起來以構成某個應用程式。在需要對應用程式進行修改或改進時,只需要將構成此應用程式的組件中的某個用新的版本替換掉即可。
COM,即組件對象模型,是關於如何建立組件以及如何通過組件建立應用程式的一個規範,說明了如何可動態交替更新組件。

組件優點

組件架構的一個優點就是套用可以隨時間的流逝而發展進化。除此之外,使用組件還有一些可以使對以有套用的升級更加方便和靈活的優點,如套用的定製,組件庫以及分散式組件等。
使用組件的種種優點直接來源於可以將它們動態的插入或卸出套用。為了實現這種功能,所有的組件必須滿足兩個條件:第一,組件必須動態連結;第二,它們必須隱藏(或封裝)其內部實現細節。動態連結對於組件而言是一個至關重要的要求,而訊息隱藏則是動態連結的一個必要條件。
補充:COM組件由以Win 32動態連線庫(DLL)或執行檔(EXE)形式發布的可執行代碼所組成。遵循COM規範編寫出來的組件將能夠滿足對組件架構的所有要求。COM組件可以給應用程式、作業系統以及其他組件提供服務;自定義的COM組件可以在運行時刻同其他組件連線起來構成某個應用程式;COM組件可以動態的插入或卸出套用。
惡意網站可以利用含有漏洞的com組件接口,下載木馬,並且執行;
禁用com組件一般是指設定了Kill位,即IE瀏覽器不能使用這個組件,通俗講:通過設定Kill位,可以使InternetExplorer在使用默認設定時永不調用被禁用的com組件,從而禁止該控制項在Internet Explorer中運行。禁用含有漏洞的com組件後,IE就不能調用含有漏洞的COM組件;黑客利用有漏洞的COM組,寫成的網頁代碼就不能在IE中被執行,木馬等將不會被下載。

相關詞條

熱門詞條

聯絡我們