目的
將類別轉換成外界所預期的另一個介面,讓原本困於介面不相容問題而無法協力合作的類別能兜在一起。
解釋
轉接插頭
你可能有一個兩孔的插座,但你使用的是三孔的插頭,所以需要一個[轉接插頭],來轉換介面供插座使用。
動機
你可能有一個功能在不同的類別裡面,但你另一個介面又必需實作相同功能,此時可以使用轉換器模式,將另一個類別的功能,實作到該介面
範例
參與者
- Target – 定義 Client 所使用的介面
- Client – 與 Target 介面物件合作
- Adaptee – 欲轉換的既有介面
- Adapter – 將 Adaptee 轉換成 Target 介面
情境
設計模式與遊戲開發的完美結合書裡的範例我覺得很適合 :
假設遊戲可以收服怪物,但你必須保留怪物的特性,但又必須讓他符合寵物的介面。
如寵物介面
怪物介面 :
而你有一個怪物哥布林是可以被玩家收服的
設定收服之後,哥布林寵物的攻擊力是根據怪物原本攻擊力乘上等級