設計模式之介面卡模式 不相容變相容介面

2021-10-05 18:45:41 字數 1424 閱讀 6536

介面卡模式可以增加介面的易用性,使得不相容的介面變得相容。

將乙個介面轉換成另外的介面,使得原本不相容的介面變得相容。

比如你的介面設計存在缺點,不夠易用,不能復用但又希望復用的時候。

比如你要對接多個平台的介面他們互不相容的時候。

現實中也有很多介面卡,比如安卓蘋果的轉換頭,比如usb到type-c的轉換頭,都是因為兩邊的介面不同,不相容所以需要乙個介面卡。

下面是乙個手機類,現在需要充電,但是手機的充電需要typec介面。

/**

* 介面卡模式

* 手機類

*/class

mobile

}

現在只有乙個usb介面可以充電。

/**

* 介面卡模式

* 需要適配的類

* usb介面

*/class

usb}

我們增加乙個介面卡,也就是typec轉usb的頭。

/**

* 介面卡模式

* 介面卡介面

* typec介面

*/inte***ce

itypec

/** * 介面卡模式

* 介面卡類,typec轉換usb的介面卡

* typec介面

*/class

typec

implements

itypec

/** * 介面

*/public

function

typec()

}

我們的客戶端就可以使用這個介面卡了。

$mobile

=new

mobile()

;$mobile

->

charge

(new

typec

);

這是物件介面卡,還有類介面卡,類介面卡的話需要繼承要適配的類。

/**

* 介面卡模式

* 介面卡類,typec轉換usb的介面卡

* typec介面

*/class

typec

extends

usbimplements

itypec

}

這幾個設計模式其實都差不多,你也可以說使用了typec**了usb。只是角度不同所以名字不同罷了。

雖然角度不同,但是我覺得核心都差不多。這幾個設計模式都是需要修改原有類的時候,沒有選擇修改,而是套了殼子,來擴充套件功能。這是一種好的思想,靈活運用思想更重要。

**放在了我的github上面。

設計模式之介面卡模式(類介面卡模式)

介面卡模式,即定義乙個包裝類,用於包裝不相容介面的物件 包裝類 介面卡adapter 被包裝物件 適配者adaptee 被適配的類 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式的形式分為 類的介面卡模式和物件的介面卡模式 模式原理...

設計模式之 介面卡模式

1,介面卡模式把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法一起工作的兩個類能夠在一起工作 2,介面卡模式有兩種 1 類的介面卡模式 介面卡類繼承源類 這樣介面卡類就繼承了源類有的方法 並實現目標介面,實現在源類中沒有而在介面中有的方法,從而實現介面卡類有目標介面的所有方...

設計模式之介面卡模式

介面卡模式定義 將乙個類的介面,轉換成客戶期望的另乙個介面。介面卡讓原本介面不相容的類可以合作無間。簡單定義 封裝物件,並提供不同的介面。簡單例子 鴨子介面 package headfirst.adapter.ducks public inte ce duck 具體鴨子 package headfi...