擴充卡模式(變壓器模式/包裝模式wrapper)###
定義
将一個類的接口變換成用戶端所期待的另一種接口,進而使原本因接口不比對而無法在一起工作的兩個類能夠在一起工作。
三個角色
-
Target目标角色
該角色定義把其它類轉換為何種接口,也就是我們的期望接口,例子中的IUserInfo接口就是目标角色。
-
Adaptee源角色
要被轉換的角色,它是已經存在、運作良好的類或對象,經過擴充卡的包裝,他會成為一個嶄新、靓麗的角色。
-
Adapter擴充卡角色
擴充卡核心角色,是兩個已存在角色的轉換橋梁。它的職責就是通過繼承或類關聯方式把源角色轉為目标角色。
使用場景
準備修改一個已經在運作的接口時、系統擴充時, 需要使用一個已有或建立立的類,但該類又不符合要求,就可以使用擴充卡來完成。
注意事項
在設計之初不要考慮擴充卡。這個模式的主要場景是在擴充應用時使用。
類擴充卡:
通過繼承方式實作的擴充卡
對象擴充卡:
通過對象層次的關聯關系實作的擴充卡
對象擴充卡與類擴充卡的差別
類擴充卡是類間繼承,對象擴充卡是對象的合成關系,也可以說是類的關聯關系。實際使用過程中,通過對象擴充卡方式會做到更易擴充,推薦使用。
參考資料:《設計模式之禅》