設計模式入門 介面卡模式(php版)

2021-06-29 08:06:23 字數 470 閱讀 2339

場景:還記得在講策略模式時的鴨子嗎?這次它們又要閃亮登場了。這一次的問題是這樣的,鴨子漸漸不夠用了,這時有些黑心商家想要把火雞偽造成鴨子,火雞和鴨子的uml類圖如下圖所示:

我們現在要實現的目標在於:將wildturkey中的fly和gobble方法偽裝成duck中的fly和quack方法,又不能直接更改方法名和方法體,這時介面卡就派上了用場。仔細檢視如下的uml類圖:

現在如果想將火雞偽裝成鴨子就非常簡單了,只要需要new tukeyadapter(new turkey)就可以了。

介面卡模式的官方定義是:將乙個類的介面,轉換成客戶期望的另乙個介面,讓原本介面不相容的類相互之間可以合作。

設計模式PHP版七 介面卡模式

介面卡是用於已有類,而不想改動的情況下更換介面。該模式與裝飾器模式很像,但應用目的不同。本篇例子 美國電器電壓是110v,中國是220v,你在美國想要使用中國的電器,就要有乙個介面卡將110v轉為220v,不然電器無法使用。emmm,怎麼念起來怪怪的,但是我又沒有證據 第一種方式 物件介面卡 int...

設計模式入門 介面卡模式

配器模式將乙個類的介面適配成使用者所期待的 場景 現在手機的資料介面有兩種type c和micro usb,加入你現在有乙個micro usb的資料線,想給乙個type c介面的手機充電或者傳輸資料,這時你就需要乙個介面卡了 方式這裡介紹兩種介面卡設計方式 設計 物件介面卡 類介面卡 實現 公共 目...

設計模式入門 介面卡模式

歐洲的插座和美式的介面不同,買了美式的電腦,如何在歐洲使用,這就需要乙個介面卡。不改變原來物件的介面,而實現想轉換成的型別的介面。以鴨子為例,現在有乙隻火雞也想接收針對鴨子的請求。鴨子介面 public inte ce duck 綠頭鴨是鴨子的子類 public class mallardduck ...