桥接模式和路由模式区别 java 编程模式---桥接模式(Bridge Patter)
java 编程模式---桥接模式(Bridge Patter)
引例
就拿汽车在路上行驶来说 有小汽车 有公共汽车 它们都不但能在市区中的公路上行驶 也能在高速公路上行驶 这时你会发现 对于交通工具(汽车)有不同的类型 然而它们所行驶的环境也在变化 在软件系统中就要适应这两个方面的变化 怎么才应付这种变化呢?
概述
在软件系统中 某些类型由于自身的逻辑 它具有两个或多个维度的 那么如何应对这种 多维度的变化 ?就要利用面向对象的技术来使得类型能够沿着多个方向进行 但又不引入额外的复杂度?这就要用到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( 汽车在街道上行驶 );}
}
public class BusOnStreet extends Street{
public void run(){System out println( 公共汽车在街道上行驶 );}
}
传统做法通过继承来实现
结构图
lishixinzhi/Article/program/Java/gj/201311/11160