讀《ATL開發指南》p25感想

2021-08-13 19:13:23 字數 632 閱讀 8606



李國帥 於2005-12-9 8:50

作為一名c++開發人員,你將極其頻繁地實現和使用介面;作為c++類的實現者,乙個程式開發人員需要把類實現方面的細節封裝起來的。為了做到這一點,你可以使用public,private和protected。c++類的使用者僅通過類的公共介面與類例項打交道,因此介面被看作程式開發者和使用者的紐帶。如果公共介面發生了改變,類的使用者將不得不重新編譯他們的應用程式,因此,類的公共介面不應該被改動。

乙個com介面同c++類的公共介面非常相似,它使你可以描述方法(函式)和屬性(資料成員),以及把內部實現的細則完全的封裝起來。然而,com與c++不同,com採用了一種與語言無關的位置透明的方式完成這一功能。

對於軟體,和軟體裡面物件的設計,很多東西都是可以相對完整的確定下來的,只要考慮的比較充分。例如,要考慮乙個四則運算的操作物件,我們就可以相對穩定的確定,加減乘除和操作元

一、二,這些東西確定下來之後,就可以進行客戶方的模擬和測試。但是如果考慮的不充分就盲目的去做的話,不斷地改動四則運算物件的內部成員,然後不斷地改動客戶方程式,那麼除錯和溝通的工作量是相當的大的。

總之,設計時,應該先從最終目標的大角度出發,從最廣的方面入手抽象化類實體,詳細的確定介面,然後再針對介面逐步的實現類的細節。這樣做更有針對性,效率也會更高。

ATL實戰開發指南 2 2

下面 演示多介面的概念 class imath class iadvancedmath 如果你要打算改變你的介面 在介面中新增 新的方法,或者改變介面中已有方法的引數。這樣是不應該的,因為客戶程式在編譯的時候已經同介面的虛表繫結了,比如上面的iadvancedmath。所以這裡建議你再新增乙個新的介...

ATL實戰開發指南 2 3

在上一節中,我看到了queryinte ce 的實現細節了,在裡面它並沒有建立例項,也就是說並沒有用c 的new來生成例項,它只是把this指標轉換成需要的介面指標。最後一行,用了乙個addref 函式。該函式是iunknown裡面的方法,他是用來管理元件例項的生命週期的。因為乙個元件可能在被建立出...

移動IM開發指南2 心跳指令詳解

網易雲信多年ios im sdk開發的經驗,深度分析實際開發中的各種常見問題。移動im開發指南1 如何進行技術選型 移動im開發指南3 如何優化登入模組 在使用 tcp 長連線的 im 服務設計中,往往都會涉及到心跳。心跳一般是指某端 絕大多數情況下是客戶端 每隔一定時間向對端傳送自定義指令,以判斷...