桥接模式:
将抽象部分与它的实现部分分离,使它们都可以独立的变化。
java例子:
//接口
public interface Car {
public void car();
}
//实现类
public class MaseratiCar implements Car{
@Override
public void car() {
System.out.println("我是Maserati");
}
}
//实现类
public class MercedesCar implements Car{
@Override
public void car() {
System.out.println("我是Mercedes");
}
}
//定义一个桥持有Car的一个实例
public abstract class Bridge {
private Car car;
public void car(){
car.car();
}
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
}
//桥实现类
public class CarBridge extends Bridge {
@Override
public void car(){
getCar().car();
}
}
//测试
public class CarTest {
public static void main(String[] args){
Bridge bridge = new CarBridge();
//调用第一个car
Car maserati = new MaseratiCar();
bridge.setCar(maserati);
bridge.car();
//调用第二个car
Car mercedes = new MercedesCar();
bridge.setCar(mercedes);
bridge.car();
}
}
//结果
我是Maserati
我是Mercedes
如果要增加第三种车, 只需要增加一个Car实现类,不会影响其他类的改动。