将抽象部分与实现部分解耦。比如蜡笔的颜色和型号,3种型号的蜡笔(大,中,小),4种颜色(红,黄,蓝,绿)。需要准备12只蜡笔。而反观毛笔,只需要准备3只再加上4种颜料,7件。这就是将颜色和型号解耦。之后添加毛笔或者颜色都要比蜡笔来的好。通过颜料盒来当作颜色和毛笔之间的桥梁。
抽象桥-颜料盒
interface ColorBox{
public void drow();
}
颜色
class Red implements ColorBox{
public void drow(){
System.out.println("红色");
}
}
抽象型号的笔
abstract class Pen {
public ColorBox box = null;
public void setBox(ColorBox box) {
this.box = box;
}
abstract void drow();
}
大号笔
class BigPen extends Pen {
@Override
void drow() {
System.out.println("大号笔");
box.drow();
}
}
客户端通过桥去连接型号和颜色
public static void main(String[] args) {
Pen pen=new BigPen();
pen.setBox(new Red());
pen.drow();
}