介面卡模式

2021-08-29 16:09:55 字數 2703 閱讀 9510

介面卡模式的定義:

將乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法在一起工作的兩個類能夠在一起工作。

以乙個例項形象的說明適配模式:

a、b兩個圖框代表已經塑模成型的物體a和物體b,那現在要求把a和b安裝在一起使用,如何安裝?增加乙個過渡裝置c,c就是介面卡。

現實場景用類:

在公司管理系統中設定物件userinfo儲存本公司人員的所有資訊,但同時公司裡還有外包人員,對外包人員資訊進行管理,實時呼叫外包公司管理系統中人員資訊物件,但本公司與外包公司的人員資訊物件結構不一樣,沒法直接呼叫外包公司人員資訊物件,此時需對外包公司人員資訊類進行適配。

員工資訊介面

public inte***ce iuserinfo
介面的實現類

public class userinfo implements iuserinfo 

/** 獲得家庭**號碼

*/public string gethometelnumber()

/** 員工的職位,是部門經理還是普通職員

*/public string getjobposition()

/** 手機號碼

*/public string getmobilenumber()

/** 辦公室**,煩躁的時候最好"不小心"把**線踢掉

*/public string getofficetelnumber()

/** 姓名,這個很重要

*/public string getusername()

}

現在公司中有外包人員,其人員的資訊物件結構如下:

public inte***ce iouteruser
其實現類為:

public class outeruser implements iouteruser 

/** 員工的家庭資訊

*/public map getuserhomeinfo()

/** 員工的工作資訊,比如,職位等

*/public map getuserofficeinfo()

}

公司的人員管理資訊中實時獲取外包公司人員的資訊物件,但外包公司的類物件結構與本公司類物件結構不一樣,在業務中不能直接使用外包公司中的物件。要對外包公司的物件進行適配

public class outeruserinfo extends outeruser implements iuserinfo 

/** 家庭**號碼

*/public string gethometelnumber()

/**職位資訊

*/public string getjobposition()

/** 手機號碼

*/public string getmobilenumber()

/** 辦公**

*/public string getofficetelnumber()

/** 員工的名稱

*/public string getusername()

}

呼叫本公司的人員資訊

public class client 

}}

呼叫外包人員的資訊

public class client 

}}

根據以上案例,總結適配模式的通用類圖:

● target目標角色

該角色定義把其他類轉換為何種介面,也就是我們的期望介面,例子中的iuserinfo介面

就是目標角色。

● adaptee源角色

你想把誰轉換成目標角色,這個「誰」就是源角色,它是已經存在的、執行良好的類或對

象,經過介面卡角色的包裝,它會成為乙個嶄新、靚麗的角色。

● adapter介面卡角色

介面卡模式的核心角色,其他兩個角色都是已經存在的角色,而介面卡角色是需要新建

立的,它的職責非常簡單:把源角色轉換為目標角色,怎麼轉換?通過繼承或是類關聯的方

式。適配模式的通用原始碼:

目標類介面

public inte***ce target
目標介面的實現類:

public class concretetarget implements target 

}

源物件結構:

public class adaptee 

}

適配類:

public class adapter extends adaptee implements target 

}

場景呼叫:

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...