介面卡模式

2021-09-09 01:30:00 字數 1230 閱讀 7777

介面卡模式:

將乙個類的介面轉換成客戶希望的另外乙個介面。adapter模式使得原來由於介面不相容而不能一起工作的那此類可以一起工作。

主要角色:

target(目標角色):客戶希望使用的介面,需要適配成這個介面。

adaptee(源角色):被適配的介面,需要進行適配的介面。

adapter(適配角色):對adaptee的介面與target介面進行適配;介面卡是本模式的核心,介面卡把源介面轉換成目標介面,此角色為具體類。

適用場景

1、你想使用乙個已經存在的類,而它的介面不符合你的需求

2、你想建立乙個可以復用的類,該類可以與其他不相關的類或不可預見的類協同工作

3、你想使用乙個已經存在的子類,但是不可能對每乙個都進行子類化以匹配它們的介面。物件介面卡可以適配它的父類介面(僅限於物件介面卡)

介面卡模式分為類介面卡和物件介面卡,不考慮類介面卡了,兩種介面卡的區別和介面卡模式的抽象**可參考:

乙個例項

inte***ce

*****bookinte***ce

class book implements

*****bookinte***ce

public

function

turnpage()

}inte***ce

ebookinte***ce

class kindle implements

ebookinte***ce

public

function

pressstart()

}class ebookadapter implements

*****bookinte***ce

public

function

open()

public

function

turnpage()

}$book = new

book();

$book->open();

$book->turnpage();

$kindle = new ebookadapter(new

kindle());

$kindle->open();

$kindle->turnpage();

介面卡模式(類介面卡 物件介面卡)

做個筆記 引用 public inte ce usb public inte ce psp public class usber implements usb 類介面卡 psp適用usb介面 public class usbadapter extends usber implements psp 物...

介面卡模式 預設介面卡,類介面卡,物件介面卡

模式思想 改變乙個類的對外介面 增加或減少 以滿足不同外部呼叫者的需求 角色成員 目標介面 target 客戶所期待的介面。目標可以是具體的或抽象的類,也可以是介面。需要適配的類 adaptee 需要適配的類或適配者類。介面卡 adapter 通過包裝乙個需要適配的物件,把原介面轉換成目標介面。適配...

設計模式 介面卡模式 類介面卡 物件介面卡

乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...