總體來說設計模式分為三大類:
建立型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
結構型模式,共七種:介面卡模式、裝飾器模式、**模式、外觀模式、橋接模式、組合模式、享元模式。
行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、直譯器模式。
總原則:開閉原則(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)
原則是盡量首先使用合成/聚合的方式,而不是使用繼承。
常見的設計模式
常見的設計模式分為三類 建立型 結構型 行為型 單例模式 public class singleton public static singleton getinstance return thesingleton 簡單工廠模式 簡單工廠模式是a類想呼叫b類,不直接new b類,直接new出來耦合性...
常見的設計模式
單例模式 永遠只有這乙個例項物件,不管執行什麼操作。1 懶漢式 當呼叫方法時,才能獲取所需單例物件,單例物件才能被建立。2 餓漢式 初始類時,單例物件建立。實現單例條件 1.私有的建構函式 2.私有的靜態全域性變數 3.公有的靜態方法 工廠模式 sessionfactory.opensession ...
常見的設計模式
設計模式主要分三個型別 建立型 結構型和行為型。其中建立型有 一 singleton,單例模式 保證乙個類只有乙個例項,並提供乙個訪問它的全域性訪問點 二 abstract factory,抽象工廠 提供乙個建立一系列相關或相互依賴物件的介面,而無須指定它們的具體類。三 factory method...