java設計模式之-適配器模式

來源:互聯網
上載者:User

標籤:適配器模式

前言

       適配器模式就是當需要的功能與要提供的功能之間介面不符合時,作為兩者之間的適配,從而讓兩者可以無縫對接。例如現實生活中的電腦充電情況一樣,如果有朋友出國旅遊,在國外買了一台電腦,回到國內後突然想給電腦充電,發現外國的電壓不是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設計模式之-適配器模式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.