天天看點

PHP設計模式——擴充卡模式

聲明:本系列部落格參考資料《大話設計模式》,作者程傑。

          擴充卡模式(有時候也稱包裝樣式或者包裝)将一個類的接口适配成使用者所期待的(擴充卡模式要解決的核心問題)。一個适配允許通常因為接口不相容而不能在一起工作的類工作在一起,做法是将類自己的接口包裹在一個已存在的類中。

        類圖:

PHP設計模式——擴充卡模式

       待适配(ForeignPlayer)角色:此角色的接口規則内部的接口規則不一緻,但内部需要調用該角色的方法功能。

       内部接口(IPlayer)角色:這是一個抽象角色,此角色給出内部期待的接口規則。

       擴充卡(Adapter)角色:通過在内部包裝一個Adapter對象,把待适配接口轉換成目标接口,此角色為擴充卡模式的核心角色,也是擴充卡模式所解決問題的關鍵。

       代碼:

         用戶端測試代碼:

适用場景

1.接口中規定了所有要實作的方法

2.但要有一個實作此接口的具體類,隻用到了其中的幾個方法,而其它的方法都是沒有用的。

注意事項

1.充當擴充卡角色的類就是實作已有接口的抽象類

2.為什麼要用抽象類:

此類是不要被執行個體化的。而隻充當擴充卡的角色,也就為其子類提供了一個共同的接口,但其子類又可以将精力隻集中在其感興趣的地方。

歡迎關注我的視訊課程,位址如下,謝謝。

<a target="_blank" href="http://edu.csdn.net/course/detail/602">   PHP面向對象設計模式</a>