9.1 現實生活中的例子
泰國插座用的是兩孔的(歐标),可以買個多功能轉換插頭 (擴充卡) ,這樣就可以使用了。
9.2 基本介紹
擴充卡模式(Adapter Pattern)将某個類的接口轉換成用戶端期望的另一個接口表示,主的目的是相容性,讓原本因接口不比對不能一起工作的兩個類可以協同工作。其别名為包裝器(Wrapper)
擴充卡模式屬于結構型模式,主要分為三類:類擴充卡模式、對象擴充卡模式、接口擴充卡模式。
9.3 工作原理
(1) 擴充卡模式:将一個類的接口轉換成另一種接口,讓原本接口不相容的類可以相容
(2) 從使用者的角度看不到被适配者,是解耦的
(3) 使用者調用擴充卡轉化出來的目标接口方法,擴充卡再調用被适配者的相關接口方法
(4) 使用者收到回報結果,感覺隻是和目标接口互動,如圖
// 被适配類
package com.xusj.future.structural.adapter;
/**
* @author xusj
* <br>CreateDate 2022/7/26 23:22
*/
public class V220V {
public int out220v() {
return 220;
}
}
// 目标适配接口
package com.xusj.future.structural.adapter;
/**
* @author xusj
* <br>CreateDate 2022/7/26 23:24
*/
public interface V5V {
int translateM(int v);
}
// 擴充卡
package com.xusj.future.structural.adapter;
/**
* @author xusj
* <br>CreateDate 2022/7/26 23:24
*/
public class Adapter implements V5V {
// 聚合被适配類
private V220V v220V;
// 構造方法
public Adapter(V220V v220V) {
this.v220V = v220V;
}
// 實作目标接口,進行适配
@Override
public int translateM(int v) {
return v220V.out220v() / 2;
}
}