標籤:備忘錄 訪問者 代理模式 迭代 應用 原型模式 抽象原廠模式 相對 獲得
前言
設計模式是眾多開發人員在反覆的實踐中,總結出的最佳策略。設計模式往往被富有豐富軟體開發經驗的工程師所採納。設計模式也是開發工程師在軟體開發過程中面臨一般的問題時的解決方案。設計模式是一套反覆被開發人員使用,多數人知曉的設計經驗的高度總結,使用設計模式至少有兩個好處。
1.避免相同的代碼貼的到處都是。
2.使得代碼被人理解和擴充。
設計模式的用途
- 設計模式提供了一個標準術語,任何一個有幾年開發經驗的開發人員在維護系統代碼時,很能快速代碼是什嗎?
- 設計模式已經經過了一段漫長裡曆程,它們提供了在軟體開發過程中面臨的一些問題和最佳實務方案。
設計模式的類型
Design Patterns一書中提到總共有23中設計模式,而這23中模式可以分為三類。
建立型模式主要有原廠模式,抽象原廠模式,單例模式,建造者模式,原型模式。這類設計模式強調的是在建立對象的同時,隱藏建立邏輯的方式,而不是使用new關鍵字直接執行個體化對象,這使得程式在判斷針對給定執行個體需要建立哪些對象變得更加靈活。
結構型模式主要有適配器模式,橋接模式,過濾器模式,組合模式,裝飾器模式,面板模式,享元模式,代理模式。結構型模式關注類和對象的組合。繼承的概念被用來組合介面和定義組合對象獲得新功能的方式。
行為型模式主要有責任鏈模式,命令模式,解譯器模式,迭代器模式,中介者模式,備忘錄模式,觀察者模式,狀態模式,Null 物件模式策略模式,模板模式,訪問者模式。
設計模式的6大原則
- 開閉原則(open close principle),開閉原則的意思是,對擴充開放,對修改關閉,在程式需要進行拓展時,不去修改原有的代碼,即為了讓程式有良好的擴充性,便於維護和升級。
- 裡氏代換原則(liskov substitution principle):裡氏代換原則是物件導向設計中的原則之一。子類能夠在基類的基礎上增加新的行為,即聲明某一個變數時,採用基類類型,在運行時確定子類類型,用子類的行為來替換基類的行為。
- 依賴倒轉原則(dependence inversion principle):這個原則是開閉原則的基礎,強調的是,針對介面編程,依賴於抽象而不依賴於具體。
- 介面隔離原則(interface segregation principle):使用多個隔離的介面,比使用單個介面要好,即,降低依賴,降低耦合。
- 迪米特法則(demeter principle):一個實體盡量少地與其他實體發生相互作用,使得系統功能模組相對獨立。
- 合成複用原則(composite reuse principle):盡量使用合成/彙總的方式,而不是使用繼承。
設計模式解讀關注的重點
這個專題聊聊設計模式,我會把重點分為5點。
- 該設計模式的基本概念。
- 該設計模式的解決了什麼問題。
- 該設計模式的優點和缺點。
- 該設計模式在JDK源碼中應用。
- 該設計模式在Spring源碼中的應用。
Java設計模式概述