1. 程式人生 > >出介面(Outgoing Interface)與入介面(Incoming Interface)

出介面(Outgoing Interface)與入介面(Incoming Interface)

COM所建立的是一個軟體模組與另一個軟體模組之間的連結, 當這種連結建立之後, 模組之間就可以通過被稱之為 Interface "介面" 的機制來進行通訊

在絕大部分情況下, 客戶應用程式與元件的通訊過程是單向的, 客戶建立元件物件, 然後客戶通過介面呼叫物件所提供的功能, 在適當的時候再把物件釋放掉 。 

在這種互動過程中, 客戶總是主動的, 而元件總是處於被動狀態, 通過自身暴露給客戶的介面監聽, 客戶的請求, 一旦接收到客戶的請求便做出反應 。這樣的介面稱為入介面incoming interface。

對於一個全面互動過程來說, 這樣的單向通訊往往是不能滿足實際的需要, 元件物件也要主動與客戶進行通訊。

因此, 與入介面相對應, 物件也可以提供出介面outgoing interface, 也叫回撥介面, 物件通過這些出介面與客戶進行通訊 。之所以把這些介面稱為出介面, 其原因在於這些介面並不由COM伺服器端的物件實現, 而是由客戶程式來實現, 客戶實現這些介面, 並把介面指標通過一定的手段傳給伺服器,以後伺服器端就利用此介面指標與客戶進行通訊,伺服器端呼叫此介面的成員函式, 即呼叫了客戶自定義的函式(這便是回撥之意),這時元件物件變成了客戶端的客戶。

可見在com規範中,com元件物件提供服務客戶呼叫服務,這種物件與客戶之間的關係是相對的。