java编程模式:桥接模式(BridgePatter)

2014-11-14 23:45:36 · 作者: · 浏览: 32

  引例:


  就拿汽车在路上行驶来说。有小汽车,有公共汽车,它们都不但能在市区中的公路上行驶,也能在高速公路上行驶,这时你会发现,对于交通工具(汽车)有不同的类型,然而它们所行驶的环境也在变化,在软件系统中就要适应这两个方面的变化,怎么才应付这种变化呢?


  概述:


  在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的,那么如何应对这种“多维度的变化”?就要利用面向对象的技术来使得类型能够沿着多个方向进行,但又不引入额外的复杂度?这就要用到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("汽车在街道上行驶");}


  }