1. 程式人生 > >設計模式之裝飾者模式&策略模式&迭代器模式

設計模式之裝飾者模式&策略模式&迭代器模式

設計模式之裝飾者模式&策略模式&迭代器模式

Demo地址
裝飾者模式
定義

動態的給一個物件新增額外的功能

應用場景

生活場景,我們給新買的手機裝外殼,外殼可以隨意換

裝飾者模式角色
  1. 抽象元件
  2. 具體元件
  3. 抽象裝飾者
  4. 具體裝飾者
開發步驟及關係
  1. 定義抽象元件
  2. 具體元件繼承抽象元件
  3. 定義 抽象裝飾者
    要求:繼承抽象元件,持有抽象元件引用
  4. 具體元件 繼承抽象元件
使用

使用見github Demo中的 decorator

策略模式
定義

策略模式是指對一系列的演算法定義,並將每一個演算法封裝起來,而且使它們還可以相互替換。策略模式讓演算法獨立於使用它的客戶而獨立變化。

應用場景
  1. 多個類只區別在表現行為不同,可以使用Strategy模式,在執行時動態選擇具體要執行的行為。
  2. 需要在不同情況下使用不同的策略(演算法),或者策略還可能在未來用其它方式來實現。
  3. 對客戶隱藏具體策略(演算法)的實現細節,彼此完全獨立。
策略模式角色
  1. 策略介面
  2. 具體策略
  3. 策略上下文
開發步驟及關係
  1. 定義策略介面
  2. 具體策略實現策略介面
  3. 定義 策略上下文
使用

使用見github Demo中的 strategy

迭代器模式
定義

迭代器模式(Iterator),提供一種方法順序訪問一個聚合物件中的各種元素,而又不暴露該物件的內部表示。

應用場景

生活例項:假如要匯入阿里巴巴所有員工資訊表到新的系統,我們又不關心內部怎麼做到的,也不關心什麼型別資料的儲存,

迭代器角色
  1. 迭代器介面
  2. 具體迭代器
  3. 容器介面
  4. 具體容器
開發步驟及關係
  1. 定義迭代器介面
  2. 具體迭代器實現迭代器介面
  3. 抽象容器 提供獲得迭代器的方法
  4. 具體迭代器,實現抽象容器街介面
使用

使用見github Demo中的 iterator

說明:這裡主要寫出了這幾種設計模式的角色關係。根據本文對相應模式的角色分析,結合Demo,你也一定會很快掌握相應內容