文章目錄
- 前言
- 一、創建型模式(Creational Patterns)
- 二、結構型模式(Structural Patterns)
- 三、行為型模式(Behavioral Patterns)
前言
設計模式是軟件工程中用來解決特定問題的一組解決方案。它們是經過驗證的、可重用的解決方案,可以在不同的軟件項目中應用。
一、創建型模式(Creational Patterns)
- 單例模式(Singleton):確保一個類只有一個實例,并提供一個全局訪問點。
- 工廠方法模式(Factory Method):定義創建對象的接口,讓子類決定實例化哪一個類。
- 抽象工廠模式(Abstract Factory):創建相關或依賴對象的家族,而不需明確指定具體類。
- 建造者模式(Builder):構建一個復雜的對象,并允許按步驟構造。
- 原型模式(Prototype):通過拷貝現有的實例創建新的實例,而不是通過新建。
二、結構型模式(Structural Patterns)
- 適配器模式(Adapter):允許對象間的接口不兼容問題通過一個中間層來解決。
- 裝飾器模式(Decorator):動態地給一個對象添加額外的職責。
- 代理模式(Proxy):為另一個對象提供一個代替或占位符以控制對它的訪問。
- 外觀模式(Facade):為子系統中的一組接口提供一個統一的高層接口。
- 橋接模式(Bridge):將抽象部分與其實現部分分離,使它們可以獨立地變化。
- 組合模式(Composite):將對象組合成樹形結構以表示“部分-整體”的層次結構。
- 享元模式(Flyweight):通過共享來高效地支持大量細粒度的對象。
三、行為型模式(Behavioral Patterns)
- 策略模式(Strategy):定義一系列算法,把它們一個個封裝起來,并使它們可互換。
- 模板方法模式(Template Method):在方法中定義算法的骨架,延遲到子類中實現。
- 觀察者模式(Observer):對象間的一對多依賴關系,當一個對象改變狀態時,所有依賴于它的對象都會得到通知并自動更新。
- 迭代器模式(Iterator):順序訪問一個聚合對象中的各個元素,不暴露其內部的表示。
- 責任鏈模式(Chain of Responsibility):使多個對象都有機會處理請求,從而避免請求的發送者和接收者之間的耦合關系。
- 命令模式(Command):將請求封裝為一個對象,從而使用戶可用不同的請求對客戶進行參數化。
- 備忘錄模式(Memento):在不破壞封裝性的前提下,捕獲一個對象的內部狀態,并在該對象之外保存這個狀態。
- 狀態模式(State):允許一個對象在其內部狀態發生改變時改變其行為。
訪問者模式(Visitor):為一個對象結構(如組合結構)增加新能力。