標籤:適配器模式
前言
適配器模式就是當需要的功能與要提供的功能之間介面不符合時,作為兩者之間的適配,從而讓兩者可以無縫對接。例如現實生活中的電腦充電情況一樣,如果有朋友出國旅遊,在國外買了一台電腦,回到國內後突然想給電腦充電,發現外國的電壓不是220V的,而是110V的(這裡是假設的),怎麼辦呢?還好外國買的電腦配有充電轉換器,可以將220V的電壓轉換成110V電壓,好吧,電腦充電問題可以解決了。這其中的充電轉換器就是適配器,它可以無縫串連220V電壓,並將其轉換為110V的電壓。這就是適配器模式。
例子 一台需要充電的電腦
<span style="font-size:18px;">public class Computer {/** * 充電功能,需要100V的電壓 * * @param power100vInterface */public void chargeComputer(Power110VInterface power110vInterface) {System.out.println("電腦正在充電,電壓是:" + power110vInterface.prove110Power());}}</span> 也就是說那台電腦需要一個能提供110V電壓的介面
<span style="font-size:18px;">public interface Power110VInterface {public int prove110Power();}</span>
但是僅有的類只能提供220V的電壓
public class Power220V {/** * 提供220V電壓 * @return */public int prove220Power() {return 220;}}
沒關係,以為我們有充電轉換器(適配器)
<span style="font-size:18px;">public class Power110VAdapter implements Power110VInterface {private Power220V power220v;public Power110VAdapter(Power220V power220v) {this.power220v = power220v;}@Overridepublic int prove110Power() {return this.prove110VFrom220V();}/** * 可以將220V電壓轉換為110V電壓 * * @return */private int prove110VFrom220V() {return this.power220v.prove220Power() / 2;}}</span> 好了,沒問題了電腦終於可以衝上點了
<span style="font-size:18px;">public class MainTest {public static void main(String[] args) {//一台電腦Computer computer=new Computer();//能提供220V的電壓Power220V power220v=new Power220V();//適配器產生提供110V電壓的介面Power110VInterface power110vInterface=new Power110VAdapter(power220v);//電腦充電了computer.chargeComputer(power110vInterface);}}</span>
結果:電腦正在充電,電壓是:110
java設計模式之-適配器模式