文章目录
定义
从原有类中抽取出独立功能的抽象类/接口,通过组合的方式建立原有类和抽取类之间的联系
类结构
原有类
持有一个抽取的接口/抽象类对象
抽取相关类
从原有类中抽取出独立功能的类,
抽象类/接口
定义独立功能的相关方法
具体类
实现独立功能的相关方法
类之间的关系
原有类依赖抽取的抽象类/接口
原有和抽取是一对多的关系,所以使用接口
代码实例
原有类
public class Shape {
private Color color;
public void setColor(Color color) {
this.color = color;
}
public void draw() {
color.draw();
}
}
抽取类
public interface Color {
void draw();
}
public class Yellow implements Color {
public void draw() {
System.out.println("Yellow");
}
}
public class Red implements Color {
public void draw() {
System.out.println("Red");
}
}
public class Blue implements Color {
public void draw() {
System.out.println("Blue");
}
}
没有桥接模式的情况下,需要创建多个Shape
public class RedShape {
public void draw() {
System.out.println("red");
}
}
public class YellowShape {
public void draw() {
System.out.println("yellow");
}
}
public class BlueShape {
public void draw() {
System.out.println("blue");
}
}
总结
桥接模式核心思想是从原有类抽取出独立功能的接口,类似工厂模式、Builder模式都是抽取出独立功能的类