桥接模式(Bridge Pattern)是一种结构型设计模式,它将抽象部分与它的实现部分分离,使它们都可以独立地变化。桥接模式的核心思想是将抽象与实现解耦,使得它们可以独立扩展。
在桥接模式中,通常包含以下四个角色:
1、实现化(Implementor)角色:定义实现化角色的接口,这个接口不一定要与抽象化角色的接口完全一致,但一般来说,实现化角色的接口应当与抽象化角色的接口相类似。
// 实现化角色(Implementor)
public interface Color { void fill();
}
2、具体实现化(ConcreteImplementor)角色:实现角色接口,实现具体的业务逻辑。
// 具体实现化角色(ConcreteImplementor)
public class Red implements Color { @Override public void fill() { System.out.println("用红色填充"); }
}
public class Blue implements Color { @Override public void fill() { System.out.println("用蓝色填充"); }
}
3、抽象化(Abstraction)角色:定义抽象类的接口,并保存一个对应实现化对象的引用。
public abstract class Shape { protected Color color; public Shape(Color color) { this.color = color; } public abstract void draw(); public void setColor(Color color) { this.color = color; } public Color getColor() { return color; }
}
4、扩展抽象化(RefinedAbstraction)角色:实现抽象化角色定义的接口,并扩展抽象化角色。扩展抽象化角色需要更新对实现化对象的引用,以间接调用实现化角色的方法。
public class Circle extends Shape { public Circle(Color color) { super(color); } @Override public void draw() { System.out.println("绘制圆形..."); color.fill(); }
}
具体代码引用
public static void main(String[] args) { Shape redCircle = new Circle(new Red()); redCircle.draw();//用红色Shape blueCircle = new Circle(new Blue()); blueCircle.draw();//用蓝色}