首頁 > Java > Java基礎 > 主體

簡述設計模式的概念

王林
發布: 2020-05-12 17:35:01
原創
3148 人瀏覽過

簡述設計模式的概念

什麼是設計模式

設計模式是一套被重複使用、多數人知曉的、經過分類編目的程式碼設計經驗的總結,它與具體的語言無關,是一種思想。

掌握了物件導向的思想,才可以更好的理解設計模式,而反之亦然。

設計模式是在軟體工程實作過程中,程式設計師們總結出的良好的程式設計方法。

設計模式一共有23種。

這23種設計模式的本質是物件導向設計原則的實際運用,是對類別的封裝性、繼承性和多態性,以及類別的關聯關係和組合關係的充分理解。

(相關影片教學推薦:java影片

設計模式的分類

1、建立型模式

創建型模式(5種):單例模式,工廠方法模式,抽象工廠模式,建造者模式,原型模式。

2、結構型模式

結構型模式(7種):適配器模式,裝飾器模式,代理模式,外觀模式,橋接模式,組合模式,享元模式。

3、行為型模式

行為型模式(11種):策略模式、範本方法模式、觀察者模式、迭代子模式、責任鏈模式、指令模式、備忘錄模式、狀態模式、訪客模式、中介者模式、解釋器模式。

設計模式的六大原則

總原則:開閉原則

對擴充開放,對修改封閉。在程式需要拓展的時候,不能去修改原有的程式碼,而是要擴充原有程式碼,實現一個熱插拔的效果。所以一句話概括就是:為了讓程式的擴充性好,易於維護和升級。

想要達到這樣的效果,我們需要使用介面和抽象類別等,後面的具體設計中我們會提到這一點。

1、單一職責原則

不要存在多於一個導致類別變更的原因,也就是說每個類別應該實現單一的職責,否則就應該把類別拆分。

2、里氏替換原則(Liskov Substitution Principle)

任何基底類別可以出現的地方,子類別一定可以出現。里氏替換原則是繼承復用的基石,只有當衍生類可以替換基類,軟體單位的功能不受到影響時,基類才能真正被復用,而衍生類也能夠在基類的基礎上增加新的行為。

里氏代換原則是「開-閉」原則的補充。實現「開閉」原則的關鍵步驟就是抽象化。而基底類別與子類別的繼承關係就是抽象化的具體實現,所以里氏代換原則是實現抽象化的具體步驟的規範。在里氏替換原則中,子類別對父類別的方法盡量不要重寫和重載。因為父類代表了定義好的結構,透過這個規範的介面與外界交互,子類別不應該隨便破壞它。

3、依賴倒轉原則(Dependence Inversion Principle)

面向介面編程,依賴抽象而不依賴具體。寫程式碼時用到具體類別時,不與具體類別交互,而與具體類別的上層介面交互。

4、介面隔離原則(Interface Segregation Principle)

每個介面中不存在子類別用不到卻必須實現的方法,如果不然,就要將介面拆分。使用多個隔離的接口,比使用單一接口(多個接口方法集合到一個的接口)要好。

5、迪米特法則(最少知道原則)(Demeter Principle)

一個類別對自己依賴的類別知道的越少越好。無論被依賴的類別多麼複雜,都應該將邏輯封裝在方法的內部,透過public方法提供給外部。這樣當被依賴的類別變化時,才能最小的影響該類別。

最少知道原則的另一個表達方式是:只與直接的朋友通信。類別之間只要有耦合關係,就叫朋友關係。耦合分為依賴、關聯、聚合、組合等。我們稱出現為成員變數、方法參數、方法回傳值中的類別為直接朋友。局部變數、臨時變數則不是直接的朋友。我們要求陌生的類別不要作為局部變數出現在類別中。

6、合成復用原則(Composite Reuse Principle)

盡量先使用合成/聚合的方式,而不是使用繼承。

推薦教學:java入門

以上是簡述設計模式的概念的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板