Com組件的兩種複用方式:包容與集合的區別

來源:互聯網
上載者:User

最近在看《ATL開發指南》,學習下ATL架構,應該是等同於MFC架構,是對COM這種技術封裝。

  1. Com包容也被稱作委派,其實類似於C++中類的組合複用模式,類的組合是我們熟悉的。所以概念上理解很容易。實現起來,主要通過外部組件完全控制內部組件的生存期,外部組件內部維護一個內部組件執行個體,外部組件為了擴充提供內部組件的介面必須同樣聲明相應的介面,實現部分則簡單地調用內部組件的介面。
  2. Com集合也是一種組件複用方式,與包容很相似,唯一的區別就是內部組件介面直接對外公開。這種實現技術上稍微比包容複雜,它是通過將內部組件的IUnknown指標委託給外部組件的IUnknown指標,統一管理組件的介面。

在網上看到過這樣一段很形象的描述:

一個商店有一個老闆和兩個店員a、b,b已經工作很多年了,a是新來的。於是有兩種工作方式。 

當一個客戶要買東西時,他找到老闆,說要買東西,於是老闆讓他直接找b,因為b對商店很瞭解(彙總)。以後再沒有老闆什麼事了。

或者老闆告訴a該幹什麼,a去幹了,然後彙報給老闆,老闆再彙報給客戶,客戶可能結束這次訪問或者告訴老闆還有什麼要求,於是老闆再讓a去做,實際做事情的a和客戶之間需要老闆來協調(包容)。

上面這個隱喻主要從兩種方式的工作原理進行區分,處理同樣一件事的內部流程是有不同的,僅從概念上理解是比較困難的,實踐中去品味。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.