桥接模式是结构型模式的一种,桥接模式就是使用组合或者聚合的方式将对象或者系统的多个变化的维度进行解耦,对象有多个变化维度,比如颜色跟形状,颜色有2个,形状有2个,如果使用继承的方式会生成4个类,如果变化维度更多则造成类爆炸。如果桥接模式将各个变化维度组合在一起进行使用,每个维度自身的扩展由每个维度自己控制。
public interface Color {
void draw();
}
public class Red implements Color{
@Override
public void draw() {
System.out.println("红色");
}
}
public abstract class Shape {
protected Color color;
public Shape(Color color){
this.color = color;
}
public abstract void print();
}
public class Circle extends Shape{
public Circle(Color color) {
super(color);
}
@Override
public void print() {
System.out.println("这是一个圆形");
color.draw();
}
}
public class Client {
public static void main(String[] args) {
Shape shape = new Circle(new Red());
shape.print();
}
}