設計模式學習總結

2021-06-20 12:19:03 字數 822 閱讀 9964

之前一直是面向過程程式設計,前段時間因為某些原因需要更好的去理解一下物件導向思想精髓,在別人的推薦下看了《大話設計模式》這本書。通過對29個模式的學習,不僅僅了解了設計模式是個什麼回事,也稍微加深了一點對物件導向(object-oriented)技術。物件導向技術關注的是物件,物件的優點在於,可以定義自己負責的事物,作要求它自己的事情。物件應該自己負責自己,而且應該清楚地定義責任。它具有三大特徵:封裝、多型、繼承。

封裝(encapsulation),也就是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏。封裝可以隱藏實現細節,使得**模組化。

繼承性(inheritance)是指,在某種情況下,乙個類會有「子類」。子模擬原本的類(稱為父類)要更加具體化,也就是說子類會繼承父類的屬性和行為,並且也可包含它們自己的。

多型(polymorphism)是指由繼承而產生的相關的不同的類,其物件對同一訊息會做出不同的響應。

設計模式是物件導向技術的發展,設計模式中的六大原則與物件導向技術中的五大原則有著異曲同工之妙。

它們分別是單一職責原則(srp)、開放-封閉原則(ocp)、依賴倒轉原則(dip)、黎克特制代換(lsp)、迪公尺特法則(lod)、合成/聚合復用原則(carp)。srp是基本,ocp是目的,dip為手段,lsp是繼承復用的基礎,isp(inte***cesegregation principle 介面隔離原則,物件導向五大原則之一)是實現lod的手段之一,carp是復用的原則 。

29個具體的模式是六大原則的體現,同時它們也能分成建立型模式、結構型模式和行為型模式。

(詳細模式介紹大家可以參考一下這三篇部落格:建立型設計模式、結構型設計模式、行為型設計模式)

設計模式 學習總結

設計模式是解決問題的方案,學習現有的設計模式可以做到經驗復用。擁有設計模式詞彙,在溝通時就能用更少的詞彙來討論,並且不需要了解底層細節。確保乙個類只有乙個例項,並提供該例項的全域性訪問點。實現 使用乙個私有建構函式 乙個私有靜態變數以及乙個公有靜態函式。1 懶漢式 執行緒不安全 public cla...

設計模式學習總結

乙個月帶著讀看完了設計模式,其中有一些模式真的是被坑著了,比如composite組合模式如果不用葉節點,真說不出有什麼特性。再比如備忘錄模式,我覺得這個模式的核心是打包傳遞資料,而不是用來備忘。好了,先寫乙個總結,以後慢慢消化 每個模式如果細說肯定不是三言兩語可以概括的,但是需要簡略概括,才能快速理...

設計模式學習總結

這兩天在看broadview的.net與設計模式一書。發現這本書的觀點很有道理,雖然今天剛把singtelon模式做了乙個總結,但是從學習設計模式的路上往回倒一步,先寫乙個學習設計模式應該注意的地方。我覺得要注意的主要有以下幾點 1.不要把設計模式當作解決方案,儘管gof的設計模式中更加偏重於解決方...