设计模式 桥接模式

桥接模式(Bridge Pattern): 将抽象部分与它的实现部分分离,使他们可以独立地变化。桥接模式是一种对象结构型模式,又称柄体模式(Handle and Body)模式或接口模式(Interface)

模式动机:

  现需要绘制矩形、原型、椭圆、长方形、正方形,绘制的图形需要有红色、绿色、蓝色等,此时有两种设计方案。第一种为每一种形状窦提供一套各种颜色的版本。第二种根据实际需要对形状和颜色进行组合。

  对于有两个变化维度(两个变化的因素)的系统,采用桥接模式来进行设计系统中类的个数更少,且系统扩展更为方便。桥接模式将继承关系转换为关联关系,从而降低类与类之间的耦合,减少代码编写量。

模式结构:

  • Abstraction:抽象类
  • RefinedAbstraction:扩充抽象类
  • Implementor:实现类接口
  • ConcreteImplementor:具体实现类

具体类图:

                  

  类图解析:Pen为抽象类,不同型号的铅笔继承Pen。Pen中有对象属性color,Color是一个接口,各种不同的具体颜色分别实现了这个接口。

  流程解析:客户端知晓毛笔的型号和颜色,通过Pen和Color获取具体型号的毛笔以及具体的颜色,具体型号的毛笔中有颜色这个属性,将已获知的颜色赋予这个属性即可得到具体颜色、型号的毛笔。

桥接模式的优点:

  • 分离抽象接口及其实现部分
  • 桥接模式类似于多继承方案
  • 提高了系统的可扩展性
  • 实现细节对客户透明,可以对用户隐藏实现细节

缺点:

  • 增加系统的理解与设计难度
  • 需要正确的识别出系统的两个独立的变化维度,因此使其适用范围具有一定的局限性
原文地址:https://www.cnblogs.com/wfswf/p/15619323.html