桥接模式

1.定义#

将抽象部分与实现部分分离,使它们都可以独立的变化。
在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。

2.类图#

类图

3.实现#

class Road {  
    void run() {  
        System.out.println("路");  
    }  
}  
  
//市区街道  
class Street extends Road {  
    void run() {  
        System.out.println("市区街道");  
    }  
}  
  
//高速公路  
class SpeedWay extends Road {  
    void run() {  
        System.out.println("高速公路");  
    }  
}  
//小汽车在市区街道行驶  
class CarOnStreet extends Street {  
    void run() {  
        System.out.println("小汽车在市区街道行驶");  
    }  
}  
//小汽车在高速公路行驶  
class CarOnSpeedWay extends SpeedWay {  
    void run() {  
        System.out.println("小汽车在高速公路行驶");  
    }  
}  
//公交车在市区街道行驶  
class BusOnStreet extends Street {  
    void run() {  
        System.out.println("公交车在市区街道行驶");  
    }  
}  
//公交车在高速公路行驶  
class BusOnSpeedWay extends SpeedWay {  
    void run() {  
        System.out.println("公交车在高速公路行驶");  
    }  
}  
//测试  
public static void main(String[] args) {  
      
    //小汽车在高速公路行驶  
    CarOnSpeedWay carOnSpeedWay = new CarOnSpeedWay();  
    carOnSpeedWay.run();  
    //公交车在市区街道行驶  
    BusOnStreet busOnStreet = new BusOnStreet();  
    busOnStreet.run();  
  
}  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 由于实际的需要,某个类具有两个或两个以上的维度变化,如果利用继承将每种可能的变化情况都定义成一个类,一是会导致类膨...
    时待吾阅读 649评论 0 0
  • 生活中的场景: 就拿汽车在路上行驶的来说。即有小汽车又有公共汽车,它们都不但能在市区中的公路上行驶,也能在高速公路...
    LikeSomeBody阅读 2,669评论 0 6
  • 介绍 桥接模式(Bridge Pattern) 也称为桥梁模式,是结构型设计模式之一。桥接模式的作用就是连接 "两...
    任教主来也阅读 335评论 0 1
  • 在正式介绍桥接模式之前,我先跟大家谈谈两种常见文具的区别,它们是毛笔和蜡笔。假如我们需要大中小3种型号的画笔,能够...
    justCode_阅读 1,785评论 0 7
  • 其一 大概林明就是这个时候走到门前的,来时的路上夕阳已经完全消失,届时天边仍残留着一小片余晖。上午的时候刚下过雨,...
    陆茶茶阅读 612评论 0 1