什么是橋接模式
把不同維度(類型)且有關(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