1、什么是設計模式?
設計模式(Design pattern)代表了最佳的實踐,通常被有經驗的面向物件的軟體開發人員所采用,設計模式是軟體開發人員在軟體開發程序中面臨的一般問題的解決方案,這些解決方案是眾多軟體開發人員經過相當長的一段時間的試驗和錯誤總結出來的,
設計模式是一套被反復使用的、多數人知曉的、經過分類編目的、代碼設計經驗的總結,使用設計模式是為了重用代碼、讓代碼更容易被他人理解、保證代碼可靠性, 毫無疑問,設計模式于己于他人于系統都是多贏的,設計模式使代碼編制真正工程化,設計模式是軟體工程的基石,如同大廈的一塊塊磚石一樣,
2、設計模式的使用?
- 開發人員的共同平臺
- 最佳的實踐
3、設計模式的型別?
23個設計模式可分為三種型別的設計模式:創建型模式(Creational Patterns)、結構型模式(Structural Patterns)、行為型模式(Behavioral Patterns),
4、設計模式的分類
創建型模式(Creational Patterns)
描述:這些設計模式提供了一種在創建物件的同時隱藏創建邏輯的方式,而不是使用 new 運算子直接實體化物件,這使得程式在判斷針對某個給定實體需要創建哪些物件時更加靈活,
包括的模式:
- 工廠模式(Factory Pattern)
- 抽象工廠模式(Abstract Factory Pattern)
- 單例模式(Singleton Pattern)
- 建造者模式(Builder Pattern)
- 原型模式(Prototype Pattern)
1. 工廠模式(Factory Pattern)
定義:定義了一個創建物件的抽象方法,由子類決定要實體化的類,工廠方法模式將物件的實體化推遲到子類,
2. 抽象工廠模式(Abstract Factory Pattern)
定義:定義了一個介面用于創建相關或有依賴關系的物件族,而無需明確指定具體類,
3. 單例模式(Singleton Pattern)
定義:確保一個類最多只有一個實體,并提供一個全域訪問點,
4. 建造者模式(Builder Pattern)
定義:封裝一個復雜物件構造程序,并允許按步驟構造,
5. 原型模式(Prototype Pattern)
定義:通過復制現有實體來創建新的實體,無需知道相應類的資訊,(Clone機制)
結構型模式(Structural Patterns)
描述:主要用于如何組合已有的類和物件來獲得更大的結構,它采用繼承機制來組合介面或實作,以提供統一的外部視圖或新的功能
包括的模式:
- 配接器模式(Adapter Pattern)
- 橋接模式(Bridge Pattern)
- 組合模式(Composite Pattern)
- 裝飾器模式(Decorator Pattern)
- 外觀模式(Facade Pattern)
- 享元模式(Flyweight Pattern)
- 代理模式(Proxy Pattern)
1. 配接器模式(Adapter Pattern)
定義:將某個類的介面轉換成客戶端期望的另一個介面表示,目的是消除由于介面不匹配所造成的類的兼容性問題,
2. 橋接模式(Bridge Pattern)
定于:將抽象部分與它的實作部分分離,使它們都可以獨立地變化,
3. 組合模式(Composite Pattern)
定義:有時又叫作部分-整體模式,它是一種將物件組合成樹狀的層次結構的模式,用來表示“部分-整體”的關系,使用戶對單個物件和組合物件具有一致的訪問性,
4. 裝飾器模式(Decorator Pattern)
定義:動態地給一個物件添加額外的職責,它提供了用子類擴展功能的一個靈活的替代,比派生一個子類更加靈活,
5. 外觀模式(Facade Pattern)
定義:定義一個高層介面,為子系統中的一組介面提供一個一致的外觀,從而簡化了該子系統的使用,
6. 享元模式(Flyweight Pattern)
定義:通過共享的方式高效的支持大量細粒度的物件,
7. 代理模式(Proxy)
定義:代理模式給某一個物件提供一個代理物件,并由代理物件控制對原物件的參考,通俗的來講代理模式就是我們生活中常見的中介,
行為型模式(Behavioral Patterns)
描述:這些設計模式特別關注物件之間的通信,
包括模式:
- 責任鏈模式(Chain of Responsibility Pattern)
- 命令模式(Command Pattern)
- 解釋器模式(Interpreter Pattern)
- 迭代器模式(Iterator Pattern)
- 中介者模式(Mediator Pattern)
- 備忘錄模式(Memento Pattern)
- 觀察者模式(Observer Pattern)
- 狀態模式(State Pattern)
- 策略模式(Strategy Pattern)
- 模板模式(Template Pattern)
- 訪問者模式(Visitor Pattern)
1. 責任鏈模式(Chain of Responsibility Pattern)
定義:如果有多個物件有機會處理請求,責任鏈可使請求的發送者和接受者解耦,請求沿著責任鏈傳遞,直到有一個物件處理了它為止,
2. 命令模式(Command Pattern)
定義:將一個請求封裝為一個物件,使發出請求的責任和執行請求的責任分割開,這樣兩者之間通過命令物件進行溝通,這樣方便將命令物件進行儲存、傳遞、呼叫、增加與管理,
3. 解釋器模式(Interpreter Pattern)
定義:給定一種語言,定義它的文法表示,并定義一個解釋器,該解釋器用來根據文法表示來解釋語言中的句子,
4. 迭代器模式(Iterator Pattern)
定義:提供一種方法順序訪問一個聚合物件中各個元素, 而又無須暴露該物件的內部表示,
5. 中介者模式(Mediator Pattern)
定義:定義一個中介物件來封裝一系列物件之間的互動,使原有物件之間的耦合松散,且可以獨立地改變它們之間的互動,中介者模式又叫調停模式,它是迪米特法則的典型應用,
6. 備忘錄模式(Memento Pattern)
定義:在不破壞封裝性的前提下,捕獲一個物件的內部狀態,并在該物件之外保存這個狀態,以便以后當需要時能將該物件恢復到原先保存的狀態,該模式又叫快照模式,
7. 觀察者模式(Observer Pattern)
定義:定義物件間的一種一對多的依賴關系,當一個物件的狀態發生改變時,所有依賴于它的物件都得到通知并被自動更新,
8. 狀態模式(State Pattern)
定義:允許一個物件在其內部狀態改變時改變它的行為,
9. 策略模式(Strategy Pattern)
定義:定義了一系列演算法,并將每個演算法封裝起來,使他們可以相互替換,且演算法的變化不會影響到使用演算法的客戶,
10. 模板方法模式(Template Method Pattern)
定義:定義一個操作中演算法的骨架,而將一些步驟延遲到子類中,模板方法使得子類可以不改變演算法的結構即可重定義該演算法的某些特定步驟,
11. 訪問者模式(Visitor Pattern)
定義:表示一個作用于某物件結構中的個元素的操作,使得在不改變各元素的類的前提下定義作用于這些元素的新操作,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/501756.html
標籤:其他
上一篇:設計模式——面向物件設計原則
下一篇:設計模式——面向物件設計原則
