<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學習啦>學習電腦>網(wǎng)絡知識>網(wǎng)絡基礎知識>

        什么是COM?

        時間: 春健736 分享

          學習啦小編總結(jié)了關于COM術語的一些資料,供大家參考!

          什么是COM術語

          隨著計算機網(wǎng)絡的飛速發(fā)展,軟件的應用環(huán)境變得更加廣闊;與此同時,軟件的設計難度也在提高。為適應這種分布式軟件應用環(huán)境,組件化程序設計思想迅速地發(fā)展起來。組件化程序設計思想,即復雜的應用程序被設計成一些小的、功能單一的組件模塊,這些組件模塊可以運行在同一太機器上,也可以運行在不同的機器上,甚至機器的運行環(huán)境也可以不同。

          為此,OMG (Object Management Group,對象管理組織)提出了CORBA (Common Object Request Breaker Architecture,公共對象請求中介體系結(jié)構(gòu)),而微軟提出了COM (Component Object Model,組件對象模型)標準。目前,CORBA模型主要應用于UNIX操作系統(tǒng)平臺上,而COM主要應用于Microsoft Windows操作系統(tǒng)平臺上。

          COM的特性:語言無關性、進程透明性、可重用性。

          1. 語言無關性:COM是二進制代碼級的標準。COM規(guī)范的定義不依賴于任何特定的語言。不同語言開發(fā)的COM對象可以交互、共享;而面向?qū)ο缶幊?OOP, Object-oriented Programming)語言定義的對象,只能在同種語言中被重用。實際上,可以使用OOP編程技術來開發(fā)COM組件,這兩種技術是互補的。所有編程語言中,與COM規(guī)范最貼近的要數(shù)C++,所以,要想深刻理解COM,一定要有C++編程基礎。

          2. 進程透明性:COM提供的服務組件對象在實現(xiàn)時有兩種進程模型:進程內(nèi)對象和進程外對象。前者通常以DLL的形式,在客戶進程空間中運行;后者通常以EXE的形式,運行在同一機器的另一個進程空間中,或遠程機器的一個進程空間中(此時,COM對象也可能是以DLL形式提供服務,而遠程機為其創(chuàng)建一個代理進程)。雖然COM對象有以上幾種不同的進程模型,但這些區(qū)別對于客戶程序來說是透明的。客戶程序只要遵照COM規(guī)范操作COM對象即可,完全不必理會COM對象的進程模型。然而,我們在開發(fā)COM組件時,還是要慎重選擇進程模型的。一般來說,進程內(nèi)模型效率高一點,但組件如果不穩(wěn)定會危及客戶進程;進程外模型穩(wěn)定性好,但運行時的系統(tǒng)開銷比較大,效率相對低一點。

          3. 可重用性:COM對象的可重用性與一般的面向?qū)ο笳Z言實現(xiàn)的對象的重用過程是不同的。COM對象的重用性建立在對象的行為方式上,而不是具體的實現(xiàn)上。COM有兩種機制實現(xiàn)對象的重用:包容和聚合。假設A為外部對象,B為內(nèi)部對象。包容方式,即A實現(xiàn)了B上的所有接口方法,而在實際接口方法調(diào)用時,A只是簡單地調(diào)用B相應的接口方法;而聚合方式,A不實現(xiàn)B的接口,而是把B的接口直接暴露給客戶,但A保證客戶不會知道有內(nèi)部對象B的存在。

          COM對象與C++對象的比較:

          1. COM對象對對象上的數(shù)據(jù)實現(xiàn)完全封裝,外部如果想訪問對象的數(shù)據(jù),必須通過COM對象提供的接口方法。而C++對象的數(shù)據(jù)有可能被外部直接訪問。C++語言對類的成員進行了訪問控制,public成員可以在對象外部直接訪問。

          2. COM對象的可重用性表現(xiàn)在COM對象的包容和聚合,一個對象可以完全使用另一個對象的所有功能;而C++對象的可重用表現(xiàn)在C++類的繼承,派生類可以訪問其父類的非私有屬性、調(diào)用非私有成員函數(shù)。雖然C++和COM的重用性機制不同,但我們可以把這兩種技術有機結(jié)合起來:在源代碼級使用C++的類重用性,在組件一級使用COM的重用性。

          3. 多態(tài)性使得客戶程序可以通過統(tǒng)一的方法,來處理不同的對象。C++對象通過虛函數(shù)實現(xiàn)多態(tài)性,而COM對象的多態(tài)性通過接口來體現(xiàn)。

          COM對象通過CLSID(一個128位的數(shù)串,如{54BB7788-0008-7789-ABAB-112233445566},也可以稱為UUID或GUID)來唯一標示。我們通過這個CLSID,就可以創(chuàng)建對應的COM對象(調(diào)用函數(shù)CoCreateInstance)。CLSID可以通過工具UUIDGen.exe或GUIDGen.exe來隨機產(chǎn)生。GUID不僅可以用來標示COM對象,也可以用來標示COM對象上實現(xiàn)的各個接口(QueryInterface調(diào)用時需要這個接口的GUID)。

        585305 主站蜘蛛池模板: 无码人妻斩一区二区三区 | 国产极品嫩模在线观看91| 国产高清在线精品二区| 国产精品亚洲二区在线看| 熟妇人妻久久春色视频网| 久章草这里只有精品| 377p日本欧洲亚洲大胆张筱雨| 亚洲精品无码久久久久去q | 色欧美片视频在线观看| 亚洲精品一区二区天堂| 国产 亚洲 制服 无码 中文| 乱码中文字幕| 99精品国产一区二区青青| 韩国午夜理论在线观看| 无码激情亚洲一区| 欧美成人精品 一区二区三区| 日韩精品一二三黄色一级| 亚洲欧美人成人让影院| 狠狠色狠狠色综合日日不卡| 无码国内精品久久人妻蜜桃| 国产在线码观看超清无码视频| 精品卡通动漫亚洲AV第一页| 精品www日韩熟女人妻| 国产suv精品一区二区四| 2021国产精品自产拍在线| 九九热精彩视频在线免费| 无码一区+中文字幕| 一区二区三区四区五区自拍| a级亚洲片精品久久久久久久| 成人综合婷婷国产精品久久蜜臀 | 视频在线只有精品日韩| 欧美国产日产一区二区| 亚洲色欲色欲WWW在线丝| 亚洲精品一区二区毛豆| 久久青草精品A片狠狠来| 九九热在线免费视频播放| 人妻精品丝袜一区二区无码AV| 国产一区二区三区的视频| 日韩中文字幕v亚洲中文字幕| 久久久精品2019中文字幕之3| 99久久国产综合精品女图图等你|