24.JAVA編程之適配器模式

適配器模式(Adapter)

將一個類的接口轉(zhuǎn)換成客戶希望的另一個接口,適配器模式使得原本由于接口不兼容而不能在一起工作的那些類可以在一起工作
示例代碼:
PowerA的對象能夠使用work()方法,而PowerB不能使用work()方法,所以要寫一個Adapter 適配器,implements PowerA,

public class Demo {

    public static void main(String[] args) {
        PowerA powerA = new PowerAImpl();
        work(powerA);
        PowerB powerB = new PowerBImpl();
        //接口不兼容
        //work(powerB);
        Adapter d = new Adapter(powerB);
        work(d);

    }

    public static void work(PowerA a){
        System.out.println("正在連接");
        a.insert();
        System.out.println("工作結(jié)束");
    }

}

//適配器
class  Adapter implements PowerA{
    private PowerB powerB;

    public Adapter(PowerB powerB){
        this.powerB = powerB;
    }

    @Override
    public void insert() {
        powerB.connet();
    }
}

interface PowerB{
    public void connet();
}

class PowerBImpl implements PowerB{

    @Override
    public void connet() {
        System.out.println("電源B開始工作");
    }
}

interface PowerA{
    public void insert();
}

class PowerAImpl implements PowerA{

    @Override
    public void insert() {
        System.out.println("電源A開始工作");
    }
}

運行效果:

還有一種適配器:
定義的接口中方法比較多,一個類實現(xiàn)這個接口的時候,需要重寫所有方法,如果這個類用不到所有方法,可以寫一個適配器,讓類繼承這個適配器,要用到哪個方法就重寫哪個方法。

interface Animal{
    public void sing();
    public void cry();
    public void run();
    public void swim();
}
//適配器2
abstract class AnimalFunction{
    public void sing() {

    }

    public void cry() {

    }

    public void run() {

    }

    public void swim() {

    }
}
class Dog extends AnimalFunction{
//要用哪個方法就重寫哪個方法
    public void run() {

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

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

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