定义
桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。
使用场景
一个类存在两个(或多个)独立变化的维度,且这两个(或多个)维度都需要独立进行扩展
实例
/**
* 桥接模式:将抽象部分和他的实现部分分离,使他们都可以独立的变化
* 使用场景:
* 一个类存在两个(或多个)独立变化的维度,且这两个(多个)维度都需要独立进行扩展
*/
public interface Ruler {
public void regularize();
}
class SquareRuler implements Ruler {
@Override
public void regularize() {
System.out.println("□");
}
}
class TriangleRuler implements Ruler {
@Override
public void regularize() {
System.out.println("△");
}
}
class CircleRuler implements Ruler {
@Override
public void regularize() {
System.out.println("○");
}
}
abstract class Pen {
protected Ruler ruler;
public Pen(Ruler ruler){
this.ruler = ruler;
}
public abstract void draw();
}
class BlackPen extends Pen {
public BlackPen(Ruler ruler){
super(ruler);
}
@Override
public void draw() {
System.out.println("黑");
ruler.regularize();
}
}
class WhitePen extends Pen {
public WhitePen(Ruler ruler){
super(ruler);
}
public void draw() {
System.out.println("白");
ruler.regularize();
}
public static void main(String[] args) {
new WhitePen(new CircleRuler()).draw();
new WhitePen(new SquareRuler()).draw();
new WhitePen(new TriangleRuler()).draw();
new BlackPen(new CircleRuler()).draw();
new BlackPen(new SquareRuler()).draw();
new BlackPen(new TriangleRuler()).draw();
}
}