桥接模式(结构型)

桥接模式
桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。

使用场景:

  1. 如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承联系,通过桥接模式可以使它们在抽象层建立一个关联关系。
  2. 对于那些不希望使用继承或因为多层次继承导致系统类的个数急剧增加的系统,桥接模式尤为适用。
  3. 一个类存在两个独立变化的维度,且这两个维度都需要进行扩展。

注意事项:

对于两个独立变化的维度,使用桥接模式再适合不过了。

优点:

  1. 抽象和实现的分离。
  2. 优秀的扩展能力。
  3. 实现细节对客户透明。(注:抽象与实现是如何组合的是透明的)

缺点:

桥接模式的引入会增加系统的理解与设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计与编程。

桥接模式结构图

个人理解:

这个模式不太好理解,重点在于两个维度变化。

比如买奶茶,奶茶有不同口味,也有不同容量。这就是奶茶的两个变化的维度。如果不使用桥接模式,那么可能需要有口味数*容量数的类,特别多。

假如,我们把口味定义为一个接口,把容量定义为一个抽象类。并且把接口作为抽象类的构造函数的入参,使抽象类与接口进行关联(这里正是它的缺点)。抽象类的抽象方法就是组合逻辑的最顶层方法。具体逻辑由抽象类的子类实现,抽象类的子类在实现的时候就能使用接口的方法了。在调用的时候,抽象类子类接收一个接口的实现类就能实现大杯丝袜奶茶的业务逻辑了。

以上,就能达到两个维度各自扩展的效果了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 桥接模式(结构型) 一、桥接模式概述 桥接模式是一种很实用的结构型设计模式,如果软件系统中某个类存在两个独立变化的...
    哈哈大圣阅读 3,138评论 0 0
  •   桥接模式即将抽象部分与它的实现部分分离开来,使他们都可以独立变化。桥接模式将继承关系转化成关联关系,它降低了类...
    lixin_karl阅读 2,900评论 0 2
  • @[toc] 模式定义 桥接模式(Bridge Pattern)是将抽象部分和实现部分分离,使它们可以独立地改变,...
    smileNicky阅读 2,187评论 0 2
  • 桥接模式通过抽象化和实现化之间的桥接结构来实现二者的解耦。主要用于一个类可以从多个角度分类时使用,把这种多角度分离...
    _我不是程序员阅读 1,531评论 0 0
  • 定义 将抽象部分与它的具体实现部分分离,使它们都可以独立的变化。(一定程度上解耦) 通过组合的方式建立两个类之间的...
    NealLemon阅读 3,290评论 0 4

友情链接更多精彩内容