C++ COM編程之什么是組件?
什么是組件?
一個(gè)組件同一個(gè)微型應(yīng)用程序類似,即都是已經(jīng)編譯、鏈接好并可以使用的了,應(yīng)用程序就是由多個(gè)這樣的組件打包而得到的。各定制的組件可以在運(yùn)行時(shí)同其他組件連接起來(lái)以構(gòu)成某個(gè)應(yīng)用程序。在需要對(duì)應(yīng)用程序進(jìn)行修改或改進(jìn)時(shí),只需要將構(gòu)成此應(yīng)用程序的組件中的某個(gè)用新的版本替換掉即可。
COM組件
COM,即組件對(duì)象模型,是一個(gè)說(shuō)明如何建立可動(dòng)態(tài)互變組件的規(guī)范,它提供了為保證能夠互操作,客戶和組件應(yīng)遵循的一些標(biāo)準(zhǔn)。
COM組件是以Win32動(dòng)態(tài)鏈接庫(kù)(DLLs)或可執(zhí)行文件(EXEs)的形式發(fā)布的可執(zhí)行代碼。COM組件必須滿足以下條件:
1.COM組件是完全與語(yǔ)言無(wú)關(guān)的;
2.COM組件可以以二進(jìn)制的形式發(fā)布;
3.COM組件可以在不妨礙老客戶的情況下被升級(jí);
COM組件可以透明的在網(wǎng)絡(luò)上被重新分配位置。
使用組件的優(yōu)點(diǎn)
1.應(yīng)用程序定制
組件架構(gòu)從本質(zhì)上講就是可被定制的,因用戶可以用更能滿足他們需要的組件來(lái)將某個(gè)組件替換掉;
2.組件庫(kù)
組件架構(gòu)最引人注目的優(yōu)點(diǎn)之一是快速應(yīng)用程序開(kāi)發(fā)。這一優(yōu)點(diǎn)可以使開(kāi)發(fā)人員從某個(gè)組件庫(kù)中取出所需要的組件并將其快速地組裝到一塊以構(gòu)造所需的應(yīng)用程序,如同搭積木塊一樣;
3.分布式組件
組件架構(gòu)可以使得開(kāi)發(fā)這類分布式應(yīng)用的過(guò)程得以簡(jiǎn)化。實(shí)際上,客戶機(jī)/服務(wù)器式的應(yīng)用就是向組件架構(gòu)跨出的第一步。在那里整個(gè)應(yīng)用程序被分成兩部分:客戶機(jī)部分及服務(wù)器部分。
總結(jié)
COM提供了編寫(xiě)組件的一個(gè)標(biāo)準(zhǔn)方法。遵循COM標(biāo)準(zhǔn)的組件可以被組合起來(lái)以形成應(yīng)用程序。至于這些組件是誰(shuí)編寫(xiě)的、如何實(shí)現(xiàn)的都是無(wú)關(guān)緊要的。每一個(gè)COM組件均可同其他組件一起使用。實(shí)現(xiàn)這種可動(dòng)態(tài)改變組件的關(guān)鍵問(wèn)題是信息的封裝。對(duì)于封裝,COM是通過(guò)組件和客戶之間的連接或接口來(lái)實(shí)現(xiàn)的。對(duì)于接口,我下篇博文進(jìn)行總結(jié)。
相關(guān)文章
對(duì)比C語(yǔ)言中memccpy()函數(shù)和memcpy()函數(shù)的用法
這篇文章主要介紹了對(duì)比C語(yǔ)言中memccpy()函數(shù)和memcpy()函數(shù)的用法,二者都是用于復(fù)制內(nèi)存內(nèi)容,注意區(qū)別,需要的朋友可以參考下2015-08-08一文帶你了解C++中的右值引用與移動(dòng)語(yǔ)義
本篇文章主要為大家詳細(xì)介紹了C++中的右值引用與移動(dòng)語(yǔ)義的相關(guān)知識(shí),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2023-03-03C語(yǔ)言單鏈隊(duì)列的表示與實(shí)現(xiàn)實(shí)例詳解
這篇文章主要介紹了C語(yǔ)言單鏈隊(duì)列的表示與實(shí)現(xiàn),對(duì)于研究數(shù)據(jù)結(jié)構(gòu)與算法的朋友來(lái)說(shuō)很有參考借鑒價(jià)值,需要的朋友可以參考下2014-07-07Qt實(shí)現(xiàn)驗(yàn)證碼相關(guān)功能的代碼示例
驗(yàn)證碼的原理基于人類視覺(jué)和計(jì)算機(jī)視覺(jué)的差異性,通過(guò)給用戶顯示一些難以被機(jī)器識(shí)別的圖形或文字,讓用戶進(jìn)行人機(jī)交互,確認(rèn)自己的身份,這樣可以有效保護(hù)網(wǎng)站安全,所以本給大家介紹了Qt實(shí)現(xiàn)驗(yàn)證碼相關(guān)功能的代碼示例,感興趣的朋友可以參考下2024-01-01C++超詳細(xì)講解隱藏私有屬性和方法的兩種實(shí)現(xiàn)方式
為了避免因?yàn)閷㈩悗?kù)中的私有成員開(kāi)放給類的使用方而導(dǎo)致的軟件邏輯外泄,因此需要將對(duì)外代碼中的私有成員隱藏起來(lái),下面我們來(lái)了解一下隱藏私有屬性和方法的兩種實(shí)現(xiàn)方式2022-05-05