設計模式是一種經大量實踐總結抽象出的**通用設計技巧;能夠讓**設計變得簡潔、優雅、健壯、易擴充套件和維護;設計模式被廣泛應用於經典的程式設計中,例如spring、mybatis等。
總原則:開閉原則(open close principle)
開閉原則就是說對擴充套件開放,對修改關閉。在程式需要進行拓展的時候,不能去修改原有的**,而是要擴充套件原有**,實現乙個熱插拔的效果。所以一句話概括就是:為了使程式的擴充套件性好,易於維護和公升級。想要達到這樣的效果,我們需要使用介面和抽象類等,後面的具體設計中我們會提到這點。
1、單一職責原則
不要存在多於乙個導致類變更的原因,也就是說每個類應該實現單一的職責,如若不然,就應該把類拆分。
2、黎克特制替換原則(liskov substitution principle)
黎克特制代換原則(liskov substitution principle lsp)物件導向設計的基本原則之一。 黎克特制代換原則中說,任何基類可以出現的地方,子類一定可以出現。 lsp是繼承復用的基石,只有當衍生類可以替換掉基類,軟體單位的功能不受到影響時,基類才能真正被復用,而衍生類也能夠在基類的基礎上增加新的行為。黎克特制代換原則是對「開-閉」原則的補充。實現「開-閉」原則的關鍵步驟就是抽象化。而基類與子類的繼承關係就是抽象化的具體實現,所以黎克特制代換原則是對實現抽象化的具體步驟的規範。—— from baidu 百科
歷史替換原則中,子類對父類的方法盡量不要重寫和過載。因為父類代表了定義好的結構,通過這個規範的介面與外界互動,子類不應該隨便破壞它。
3、依賴倒轉原則(dependence inversion principle)
這個是開閉原則的基礎,具體內容:面向介面程式設計,依賴於抽象而不依賴於具體。寫**時用到具體類時,不與具體類互動,而與具體類的上層接**互。
4、介面隔離原則(inte***ce segregation principle)
這個原則的意思是:每個介面中不存在子類用不到卻必須實現的方法,如果不然,就要將介面拆分。使用多個隔離的介面,比使用單個介面(多個介面方法集合到乙個的介面)要好。
5、迪公尺特法則(最少知道原則)(demeter principle)
就是說:乙個類對自己依賴的類知道的越少越好。也就是說無論被依賴的類多麼複雜,都應該將邏輯封裝在方法的內部,通過public方法提供給外部。這樣當被依賴的類變化時,才能最小的影響該類。
最少知道原則的另乙個表達方式是:只與直接的朋友通訊。類之間只要有耦合關係,就叫朋友關係。耦合分為依賴、關聯、聚合、組合等。我們稱出現為成員變數、方法引數、方法返回值中的類為直接朋友。區域性變數、臨時變數則不是直接的朋友。我們要求陌生的類不要作為區域性變數出現在類中。
6、合成復用原則(composite reuse principle)
原則是盡量首先使用合成/聚合的方式,而不是使用繼承。
靜態工廠(staticfactory method)
工廠方法(factory method)
單例模式(singleton)
介面卡(adapter)
裝飾(decorator)
**(proxy)
觀察者(observer)
策略(strategy)
模板方法(template method)
參考:
設計模式之總覽
1 設計模式的分類 設計模式一般來說可以分為三大類 建立型模式 結構型模式 行為型模式。具體來說,可以有如下細分。建立型模式有 單例模式 簡單工廠 工廠方法 抽象工廠模式 建造者模式 原型模式 結構型模式 介面卡模式 裝飾器模式 橋接模式 組合模式 享元模式 模式 外觀模式 行為模式 觀察者模式 模...
設計模式 總覽
首先需要了解一下軟體設計原則 1.單一職責原則 2.開閉原則 3.黎克特制代換原則 4.依賴倒轉原則 5.介面隔離原則 6.合成復用原則 7.迪公尺特原則 設計模式大致有23種,主要分為三類 結構型模式 建立型模式 行為型模式。結構型模式用於類或物件的組合,主要有 1.介面卡模式 2.橋接模式 3....
設計模式 總覽
總體來說設計模式分為三大類 1 建立型模式 工廠方法模式 抽象工廠模式 單例模式 建造者模式 原型模式。2 結構型模式 介面卡模式 裝飾器模式 模式 外觀模式 橋接模式 組合模式 享元模式。3 行為型模式 策略模式 模板方法模式 觀察者模式 迭代子模式 責任鏈模式 命令模式 備忘錄模式 狀態模式 訪...