引例:
就拿汽车在路上行驶来说。有小汽车,有公共汽车,它们都不但能在市区中的公路上行驶,也能在高速公路上行驶,这时你会发现,对于交通工具(汽车)有不同的类型,然而它们所行驶的环境也在变化,在软件系统中就要适应这两个方面的变化,怎么才应付这种变化呢?
概述:
在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的,那么如何应对这种“多维度的变化”?就要利用面向对象的技术来使得类型能够沿着多个方向进行,但又不引入额外的复杂度?这就要用到Bridge模式。
意图:
将抽象部分与实现部分分离,使得它们都可以独立的变化---------------GOF
结构图:
{ {
pubilc void run(){System.out.println("在路上");}
}
public class SpeedWay extends Road
{
public void run(){System.out.println("高速公路");}
}
//市区街道
public class Street extends Road
{
public void run(){System.out.println("市区街道");}
}
public class CarOnSpeedWay extends SpeedWay
{
public void run(){System.out.println("小汽车在调整公路上行驶");}
}
public class BusOnSpeedWay extends SpeedWay
{
public void run(){System.out.println("公共汽车在高速公路上行驶");}
}
public class CarOnStreet extends Street{
public void run(){System.out.println("汽车在街道上行驶");}
}
责任编辑:cyth