桥接模式即将抽象部分与它的实现部分分离开来,使他们都可以独立变化。桥接模式将继承关系转化成关联关系,它降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量。
#桥接类
public abstract class Shape {
//实现部门
Color color;
public void setColor(Color color) {
this.color = color;
}
//抽象部分
public abstract void draw();
}
#抽象部分-圆形
public class Circle extends Shape{
public void draw() {
color.bepaint("正方形");
}
}
#抽象部分-正方形
public class Square extends Shape{
public void draw() {
color.bepaint("正方形");
}
}
#实现部分-颜色接口
public interface Color {
public void bepaint(String shape);
}
#实现部分-白色
public class White implements Color{
public void bepaint(String shape) {
System.out.println("白色的" + shape);
}
}
#实现部分-黑色
public class Black implements Color{
public void bepaint(String shape) {
System.out.println("黑色的" + shape);
}
}
public class Test {
public static void main(String[] args) {
//画一个白色的正方形
Color white = new White();
Shape square = new Square();
square.setColor(white);
square.draw();
//画一个白色的长方形
Shape rectange = new Rectangle();
rectange.setColor(white);
rectange.draw();
}
}