《庚子年記》 之前老是據說: 今年是經濟形勢最差的一年,各企業都準備過冬。沒想到2020僅一個月就戰勝了最難過的2019。 筆者於2019年末裸辭,原計劃2020春招再工做,怎耐趕上了武漢疫情。舉國閉門謝客,固然也包括往日的金三銀四。各大小企業紛紛縮減開支,立求生存下去,求職市場略顯慘淡。值此之際,得到了可貴的學習時間,想趁着自由的時光鞏固下知識,打牢基本功。程序員
回首之前作過的項目,愈發頻繁地以爲本身寫的代碼不夠優雅,遂決定研讀一下設計模式相關。在不少場景你們力求破,不破不立。但在軟件上,我的以爲立更重要: 約定大於配置。要立規範,要遵照範式,要引入設計模式等。遂從新開始學習、總結。一是爲往後本身回顧總結,二是供一樣初入設計模式大門的程序員們參考學習。做者水平有限,文中如有錯漏之處,還望不吝指出。設計模式
開閉原則的意思是:對擴展開放,對修改關閉。程序應該經過擴展來實現變化,而不是經過修改已有代碼來實現一個擴展和變化。簡言之,是爲了使程序的擴展性好,易於維護和升級。架構
里氏代換原則是面向對象設計的基本原則之一。 里氏代換原則中說,任何基類能夠出現的地方,子類必定能夠出現。LSP 是繼承複用的基石,只有當派生類能夠替換掉基類,且軟件單位的功能不受到影響時,基類才能真正被複用,而派生類也可以在基類的基礎上增長新的行爲。里氏代換原則是對開閉原則的補充。實現開閉原則的關鍵步驟就是抽象化,而基類與子類的繼承關係就是抽象化的具體實現,因此里氏代換原則是對實現抽象化的具體步驟的規範。學習
一、高層模塊不該該依賴低層模塊,二者都應該依賴其抽象;ui
二、抽象不該該依賴細節;設計
三、細節應該依賴抽象。代理
這個原則的意思是:使用多個隔離的接口,比使用單個接口要好。它還有另一個意思是:下降類之間的耦合度。因而可知,其實設計模式就是從大型軟件架構出發、便於升級和維護的軟件設計思想,它強調下降依賴,下降耦合。server
也就是僅僅須要提供客戶端須要的接口,其實就是客戶端不該該依賴它不須要的接口;一個類對另外一個類的依賴應該創建在最小的接口上,就好比說你有一個抽象類裏面有不少接口,也就是說防止一個抽象類中彙總了不少的抽象方法,而要分開來其實就是一個接口的隔離。根據咱們的需求去實現該實現的方法,不去實現其餘方法,其實就是接口隔離原則。對象
又稱最少知道原則。若是兩個類沒必要彼此直接通信,那麼這兩個類就不該該直接發生做用。這就要求咱們在設計類的時候,儘可能下降類的成員的訪問權限。它的根本思想其實也是鬆耦合。繼承
儘可能使用對象組合,而不是繼承來達到複用的目的。這樣能夠下降類與類之間的耦合度
設計模式根據目的能夠分爲三大類,分別是建立型設計模式、行爲型設計模式以及結構型設計模式。 建立型模式涉及到將對象實例化,這類模式都提供一個方法,將客戶從所須要實例化的對象中解藕。 行爲型模式涉及到類和對象如何交互及分配職責。 結構型模式可讓你把類或對象組合到更大的結構中。
建立型設計模式
行爲設計模式
結構型設計模式
公衆號【當我趕上你】