面向複用性的設計模式

設計模式

設計模式的分類

  • Creational patterns 如何創建對象
  • Structural patterns 如何組合類和對象
  • Behavioral patterns 如何交互和分配責任

Structural patterns

1.適配器模式(Adapter)

意圖: 將類的接口轉換爲客戶端期望的另一個接口,解決類之間接口不兼容的問題,爲已有的類提供新的接口
目標:對舊的不兼容組件進行包裝,在新系統中使用舊的組件

在這裏插入圖片描述

2.裝飾模式(Decorator)

問題: 需要對對象進行任意或者動態的擴展組合
方案: 實現一個通用接口作爲要擴展的對象,將主要功能委託給基礎對象(stack),然後添加功能(undo,secure,…)
接口:定義裝飾物執行的公共操作
在這裏插入圖片描述
Decorator裏面有一個Component,來裝飾它,然後給出對於Component的操作

3.簡單窗口模式( Facade)

問題:調用者需要一個簡化的接口來調用複雜系統的整體功能。
方案:提供更高層次的接口來使子系統易於使用
在這裏插入圖片描述

Behavioral patterns

1.策略模式(Strategy)

問題: 針對特定任務存在多種算法,調用者需要根據上下文環境動態的選擇和切換
方案:定義一個算法的接口,每個算法用一個類來實現,客戶端針對接口編寫程序。
在這裏插入圖片描述

2.模板方法模式(Template Method)

問題:不同的客戶端具有相同的算法步驟,但是每個步驟的具體實現不同。
方案:在父類中定義通用邏輯和各步驟的抽象方法聲明
在這裏插入圖片描述

3.迭代器模式(Iterator)

問題:客戶端需要以統一的、與元素類型無關的方式訪問容器中的所有元素
方案:實現一種面向迭代的策略模式(通常是完成Iterator,和Iterable)
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章