当前位置:网站首页 > 技术博客 > 正文

内外桥接线的优缺点




文章内容主要参考了刘伟主编的《设计模式(第2版)》,同时也结合了自己的一些思考和理解,希望能帮到大家。


本篇文章主要介绍桥接,这个模式个人认为其实是大家都在默默使用的模式(或者说间接性的使用?)

桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。该模式用抽象关联取代了传统的多层继承,将类之间的静态继承关系转换为动态的对象组合关系。

桥接模式中我们要明白名字中的桥接含义,会有那么座桥去连接两边进行相通,等到后面我的解释,大家可能会发现桥不一定连接两方可能n个地方;桥可能不存在,即桥和桥的某一边统一起来了,所以整体看上去是三部分构成,可能实际只有两部分,因为有一部分承担了两种角色。

现需要提供大中小3种型号的画笔,能够绘制5种不同颜色,如果使用蜡笔,我们需要准备3*5=15支蜡笔,也就是说必须准备15个具体的蜡笔类。而如果使用毛笔的话,只需要3种型号的毛笔,外加5个颜料盒,用3+5=8个类就可以实现15支蜡笔的功能。本实例使用桥接模式来模拟毛笔的使用过程。

这边再解释一下,35=15以及3+5=8怎么来的。先讲一个小例子,假设我们要绘制一个图像,形状有矩形、圆形、椭圆和正方形四个形状类,而颜色中有红色、绿色和蓝色,那么现在如果想具体画一个图案出来,该怎么设计类结构,有三种情况:
在这里插入图片描述
第一种就是先实现了四个形状具体类,然后每个颜色都继承上面的类然后加上自己的颜色操作构成图形具体类,那么这里就有4




3=12种。
第二种有四个形状具体实现类,三个颜色具体实现类,然后定义双继承(当然java这里没有双继承,c++就有),也是12种
第三种就是用个“桥”去拼接形状和颜色,只有一座“桥”所以类的数量就看上面的4+3=7;
回归题目,相信大家应该明白为什么是8个类而不是15个。







类图第一眼看去虽乱,但是其实只要分成左右两部份,左边都是pen相关,右边都是color相关,这样看明白其实就差不多了,主要是怎么把桥两边的类给连接起来,而这里的连接其实是使用了关联的方式。

接下来代码:先搞定Color容易理解

 
    

在这里我们定义了抽象Color类和颜色具体类,然后再定义

 
   
  
  

                            

版权声明


相关文章:

  • 同义句型转换神器2025-09-28 09:00:59
  • 程序员入门教程2025-09-28 09:00:59
  • nginx安装步骤2025-09-28 09:00:59
  • java流式编程原理2025-09-28 09:00:59
  • stm32模拟iic驱动oled2025-09-28 09:00:59
  • 表之间四种连接类型2025-09-28 09:00:59
  • ldconfig命令怎么用2025-09-28 09:00:59
  • emwin spi2025-09-28 09:00:59
  • 数字图像处理实践2025-09-28 09:00:59
  • dnn神经网络算法2025-09-28 09:00:59