什么是桥接模式
把不同维度(类型)且有关联的对象通过桥接(抽象对象)的方式组合到一起
示例图
图片.png示例场景
给不同品牌的电脑安装不同类别的cpu 内存
示例代码
1.创建cpu接口
public interface Cpu {
public void addCpu();
}
2.创建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.创建Memory内存接口
public interface Memory {
public void addMemory();
}
4.创建Memory8g Memory16g内存类
public class Memory8g implements Memory{
@Override
public void addMemory() {
System.out.println("安装8g内存");
}
}
public class Memory16g implements Memory {
@Override
public void addMemory() {
System.out.println("安装16g内存");
}
}
5.创建电脑抽象类
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.创建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("组装联想品牌的电脑");
cpu.addCpu();
memory.addMemory();
}
}
7.创建启动类
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.运行结果
图片.png
网友评论