20.適配器模式-對(duì)象適配器模式

UML

對(duì)象適配器模式

代碼實(shí)現(xiàn)

需要被適配的類【電源】

適配類【充電器】

定義適配功能的接口【變壓器功能】

需要用到適配功能的類【手機(jī)-充電時(shí)】

測(cè)試類【AdapterTest】


需要被適配的類【電源】

package com.yuan.dp.adapter;

/**
 * 提供電源
 * @author Yuan-9826
 */
public class 電源 {
    /**
     * 提供的電源
     */
   private int POWER = 220;

    public int getPOWER() {
        return POWER;
    }
}

適配類【充電器】

package com.yuan.dp.adapter;

/**
 * 充電器實(shí)現(xiàn)類
 *
 * @author Yuan-9826
 */
public class 充電器 implements 充電功能接口 {

    /**
     * 被適配類
     */
    電源 power;

    public 充電器(電源 power) {
        this.power = power;
    }

    @Override
    public int inToOut() {
        if (power != null) {
            //流入充電器的電壓
            System.out.println("輸入的電壓是 " + power.getPOWER() + "伏");
            try {
                Thread.sleep(1000);
                System.out.println("經(jīng)過了很復(fù)雜的處理......");
                Thread.sleep(1000);
                int newPower = 5;
                System.out.println("輸出的電壓是 " + power + "伏");
                return newPower;
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        return -1;
    }
}

定義適配功能的接口【變壓器功能】

package com.yuan.dp.adapter;

/**
 * 定義充電器應(yīng)有的功能
 * @author Yuan-9826
 */
public interface 充電功能接口 {

    /**
     * @return 輸出電壓
     */
    int inToOut();
}

需要用到適配功能的類【手機(jī)-充電時(shí)】

package com.yuan.dp.adapter;

/**
 * 手機(jī)需要充電 需要直連電源充電
 *
 * @author Yuan-9826
 */
public class 手機(jī) {

    充電器 charger;

    public 手機(jī)(充電器 charger) {
        this.charger = charger;
    }

    /**
     * 充電方法
     */
    void charge() {

        int power = charger.inToOut();
        if (power > 5) {
            System.out.println("充電電壓 > 5V,手機(jī)爆炸了");
        } else if (power < 5) {
            System.out.println("充電電壓 < 5V,手機(jī)依然沒電");
        } else {
            System.out.println("手機(jī)用5伏電壓正常充電啦~");
        }
    }
}

測(cè)試類【AdapterTest】

package com.yuan.dp.adapter;

public class AdapterTest {
    public static void main(String[] args) {
        /**
         * 自帶220v電壓
         */
        電源 powerSupply = new 電源();

        充電器 charger = new 充電器(powerSupply);

        手機(jī) phone = new 手機(jī)(charger);

        phone.charge();

    }
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容