介面卡模式

2021-10-05 06:03:19 字數 1768 閱讀 7114

介面卡模式:將乙個類的介面換成客戶端所期望的另一種介面,從而使原本因介面不匹配而無法在一起工作的兩個類能夠在一起工作。(兩系統不同的角色進行互動可以使用rmi)

角色:1.target目標角色:該角色定義把其他類轉換成何種介面,也是我們所期望的介面。

2.adaptee源角色:想把誰轉換成目標角色,這個誰就是源角色。

3.adapter介面卡角色:把源角色轉成目標角色。一般通過繼承或者類關聯的形式。

適用場景:使用格式不同的類來匹配系統介面的時候。

具體實現(adapter):有兩家公司,採用的人力資源管理系統不同,現在有a公司的部分員工需要到b公司工作,這些員工的資訊仍然在a公司更新。但是b公司也要對這些外來的員工進行管理,並且同步a公司的更新。這時兩家公司的人員資訊的介面不一樣。採用介面卡模式。

目標角色:b公司的人員介面

源角色:a公司的人員介面

通用實現(類適配)

1.建立a公司的人員介面

/**

* a公司的人員介面

* 源角色

* 將個人資訊,工作資訊,家庭資訊分別封裝到了map中

*/public

inte***ce

iouteruser

2.建立a公司人員介面的具體實現

/**

* a公司人員介面的實現類

*/public

class

outeruser

implements

iouteruser

@override

public map getuserhomeinfo()

@override

public map getuserofficeinfo()

}

3.建立b公司人員介面

/**

* b公司的人員介面

* 目標介面

* 成員變數就是員工的資料

*/public

inte***ce

iuserinfo

4.建立b公司的人員介面的實現

/**

* b公司人員介面的實現類

*/public

class

userinfo

implements

iuserinfo

@override

public string gethomeaddress()

@override

public string getjobposition()

}

5.建立介面卡角色

/**

* 介面卡角色

* 繼承了源角色

* 實現了目標角色

*/public

class

outeruserinfo

extends

outeruser

implements

iuserinfo

@override

public string gethomeaddress()

@override

public string getusername()

}

6.建立場景測試類

/**

* 場景測試類

*/public

class

client

}

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

做個筆記 引用 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...