橋接模式

什么是橋接模式

把不同維度(類型)且有關(guān)聯(lián)的對象通過橋接(抽象對象)的方式組合到一起

示例圖

圖片.png

示例場景

給不同品牌的電腦安裝不同類別的cpu 內(nèi)存

示例代碼

1.創(chuàng)建cpu接口

public interface Cpu {
    public void addCpu();
}

2.創(chuàng)建cpui5 cpui7類

public class Cpui5 implements Cpu {
    @Override
    public void addCpu() {
        System.out.println("安裝i5的cpu");
    }
}
public class Cpui7 implements Cpu {
    @Override
    public void addCpu() {
        System.out.println("安裝i7的cpu");
    }
}

3.創(chuàng)建Memory內(nèi)存接口

public interface Memory {
    public void addMemory();
}

4.創(chuàng)建Memory8g Memory16g內(nèi)存類

public class Memory8g  implements  Memory{
    @Override
    public void addMemory() {
        System.out.println("安裝8g內(nèi)存");
    }
}
public class Memory16g implements  Memory {
    @Override
    public void addMemory() {
        System.out.println("安裝16g內(nèi)存");
    }
}

5.創(chuàng)建電腦抽象類

public abstract class Computer {
    public Cpu cpu;

    public  Memory memory;


    public void setCpu(Cpu cpu) {
        this.cpu = cpu;
    }

    public void setMemory(Memory memory) {
        this.memory = memory;
    }

    public  abstract void assemblingComputer();
}

6.創(chuàng)建Asus lenovo類

public class Asus extends  Computer {
    @Override
    public void assemblingComputer() {
        System.out.println("組裝華碩品牌的電腦");
        cpu.addCpu();
        memory.addMemory();
    }
}
public class Lenovo extends Computer {
    @Override
    public void assemblingComputer() {
        System.out.println("組裝聯(lián)想品牌的電腦");
        cpu.addCpu();
        memory.addMemory();
    }
}

7.創(chuàng)建啟動類

public class Test {
    public static void main(String[] args) {
        Computer lenovo = new Lenovo();
        lenovo.setCpu(new Cpui5());
        lenovo.setMemory(new Memory16g());
        lenovo.assemblingComputer();
        System.out.println("*****************************************");
        Asus asus = new Asus();
        asus.setCpu(new Cpui7());
        asus.setMemory(new Memory8g());
        asus.assemblingComputer();
    }
}

8.運行結(jié)果


圖片.png
?著作權(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)容