GeekBand C++ 李建忠老師 設計模式

第一講

課程目標

理解松耦合設計思想

掌握面向對象設計原則

掌握重構技法改善設計

掌握GOF核心設計模式

GOF設計模式

歷史性著作《設計模式:可復用面向對象軟件的基礎》,介紹了23種設計模式。

通常看過這本書的人都知道書的正標題,但是少有人會在意輸的副標題:可復用面向對象軟件的基礎。可復用是設計模式的目標,面向對象是一種技術手法。

通常所說的設計模式隱含是面向對象設計模式,但是不等于說設計模式就是面向對象設計模式。

從面向對象談起

面向對象隱含著兩種思維模型,底層思維抽象思維

底層思維是指:向下,如何把握機器底層,從微觀理解對象構造。如語言構造、編譯轉換(李老師在這里吐槽c++難學的一點就是c++的編譯器在背后會做很多工作),內存模型,運行時機制。

抽象思維是指:向上,如何將我們的周圍世界抽象為代碼程序。如面向對象,組件封裝,設計模式,架構模式。

深入理解面向對象

向下:深入理解三大main相對象機制

封裝,隱藏內部實現

繼承,復用現有代碼

多態,改寫對象行為

向上:深刻把握面向對象機制所帶來的抽象意義,理解如何使用這些機制來表達現實世界,掌握什么是“好的面向對象設計”。

個人感觸是多態的功能比繼承來的更為強大,在代碼解耦和、復用方面都更強大。同時,封裝、繼承、多態是面向對象的核心,要時刻記住這三點,面向對象設計模式也是圍繞這三點展開的。

軟件復雜的根本原因

軟件復雜的根本原因是變,如果加上一個修定,就是頻繁的變,特別容易就變。很多外行人會覺得寫代碼的人就是坐在電腦前,敲敲鍵盤就能解決問題,覺得很簡答啊、沒什么難的,但其實這是個誤解。寫代碼很難,寫好代碼、沒有錯誤的代碼,是一種極高的技藝,的確不是那么簡單的。

如何解決復雜性?

分解:人們面對復雜性有一個常見的做法,即分而治之

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容