一,介面卡模式
介面卡模式 : 將乙個類的介面轉換成客戶希望的另外乙個介面。介面卡模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。
二,uml圖
* client : 客戶端程式
* target : 介面卡的底層介面, 進行介面卡的多型管理,示例中沒有定義介面
* adapter : 具體介面卡,對現有介面進行適配,示例中的qqloginadapter
* adaptee : 現有介面,程式現有介面不動,通過介面卡進行功能擴充套件,例項中的loginservice
三,**示例
* 程式現有介面
public class logininservice
system.out.println("登入成功");
}public integer regist(string username, string password)
hashmap.put(username, password);
system.out.println("註冊成功");
return 0;}}
這裡定義了乙個登陸功能,涉及使用者註冊和使用者登陸,註冊後對使用者資訊進行儲存,登陸時從集合中獲取使用者資訊;
現在因為功能擴充套件,方便使用者,需要在原有登陸功能的基礎上,增加qq登陸功能,而qq的公共api只會返回乙個openid,需要依次適配原有功能完成登陸操作;
* qq登陸
public class qqloginadapter extends logininservice
login(openid, "qqpwd");
return "qq登入成功";}}
qq登陸獲取返回的openid,用openid作為username和乙個固定的qq標識密碼作為密碼進行註冊,註冊成功後直接進行登陸,完成qq登陸操作
* 客戶端
public static void main(string args)
system.out.println("-------------華麗的分割線----------------");
// qq登入
通過qqloginservice進行功能適配,完成登陸操作
四,介面卡應用場景
介面卡主要應用是為了滿足向下相容,程式不斷在擴容,功能也不斷在完善和豐富化;但是功能完善的同時也需要考慮到原有功能的健全性,並滿足程式設計的「開-閉原則「。這就需要在原有程式不變的基礎上,對程式進行重新配置,以滿足新需求;
JAVA設計模式 介面卡模式
介面卡模式 要點 1 介面卡模式主要應用於 希望復用一些現存的類,但是介面又與復用環境要求不一致的情況 在遺留 復用 類庫遷移等方面非常有用。2 介面卡模式有物件介面卡和類介面卡兩種形式的實現結構,但是類介面卡採用 多繼承 的實現方式,帶來了不良的高耦合,所以一般不推薦使用。物件介面卡採用 物件組合...
java設計模式 介面卡模式
介面卡模式把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法在一起工作的兩個類能夠在一起工作。用電器做例子,膝上型電腦的插頭一般都是三相的,即除了陽極 陰極外,還有乙個地極。而有些地方的電源插座卻只有兩極,沒有地極。電源插座與膝上型電腦的電源插頭不匹配使得膝上型電腦無法使用。...
Java設計模式 介面卡模式
目錄 介面卡模式的個人理解 轉換方法 介面卡模式的定義 通用類圖 角色定義 target目標角色 adaptee源角色 adapter介面卡角色 通用源 介面卡模式的優點 首先有乙個目標角色 乙個源角色還有乙個介面卡角色。我們要做的就是利用介面卡角色將源角色轉換為目標角色。而目標角色是乙個正在良好執...