天天看點

《C++面向對象高效程式設計(第2版)》——1.14 對象模型的優點

本節書摘來自異步社群出版社《c++面向對象高效程式設計(第2版)》一書中的第1章,第1.14節,作者: 【美】kayshav dattatri,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

c++面向對象高效程式設計(第2版)

本章我們輕松愉快地讨論并贊揚了面向對象軟體開發,最後,強調了要了解面向對象的優勢到底是什麼。為了有效地使用對象模型,應該充分地了解對象模型的優點。

(1)對象模型鼓勵建立随時間演化的系統。這確定了系統的穩定性和可擴充性。不應該為了提供新的功能而抛棄之前的系統(或者從零開始重新設計),使用繼承能更加容易地擴充系統功能1。換言之,在對現有系統進行擴充設計的過程中,可同時使用該系統。

(2)以對象和類來思考問題更加容易,因為我們熟悉周圍現有的對象。實際上,即使不是計算機方面的專業人士,也能發現這種模型比傳統模型更易于了解。

(3)對象模型通過将客戶與實作分離,強制執行嚴格的程式設計,并通過資料封裝來防止資料被意外破壞。

(4)簡單類的複用(reuse),如複用日期、時間、分數等,很大程度上促進了代碼複用和避免編寫重複的代碼。簡單的類也可用于建立較複雜的類,達到更高程度的代碼複用。

(5)對象模型鼓勵軟體和設計的可擴充複用。類可以通過繼承擴充,在類層面達到複用。當類的整個架構用于解決大型問題時,能更大程度地利用複用。簡單地說,架構是為解決特殊問題而設計的一組合作的類。客戶可以友善地精化(refine)、複用、定制(customize)和擴充架構。大容量儲存設備架構就是一個簡單的例子,它使得編寫新裝置的驅動程式更容易。另一個例子是管理各種不同傳輸協定(如tcp/ip,x.25和xns)的架構。此外,類層次的複用也相當普遍。我們經常使用的許多資料結構(如連結清單(list)、隊列(queue)和散清單(hash table) )通常都來自一個類層次。在面向過程程式設計中,很難完成這樣的複用。

繼續閱讀