设计模式-结构型模式:桥接模式

简介: 设计模式-结构型模式:桥接模式

1、简介

桥接模式(Bridge pattern)是一种结构型设计模式,它将抽象部分与它的实现部分分离,使它们都可以独立地变化。从而增加了系统的灵活性和可扩展性。

桥接模式通常用于解决两个相互依存的类之间的耦合关系。

它通过创建一个抽象类或者接口来封装抽象部分,另外再创建一个实现类来封装实现部分,然后将这两部分通过组合的方式结合起来

在桥接模式中,一般有两类角色:

①抽象化(Abstraction)角色:定义抽象类,并包含一个对实现化对象的引用。

②实现化(Implementor)角色:定义实现化对象,供抽象化角色调用。

2、帮助理解

举个例子,假设你想要制造汽车,汽车有两个重要的部分,汽车的品牌和汽车的颜色,你可以在制造汽车时先选择品牌,再选择颜色,这样你就可以得到一辆品牌为XX,颜色为YY的汽车。而使用桥接模式,则可以将品牌和颜色分开来考虑,使得品牌和颜色可以独立变化,从而得到更多的组合。

3、优缺点

桥接模式的优点是:

①分离抽象部分和实现部分,使得它们可以独立变化

②桥接模式提高了系统的扩展性

③实现细节对客户透明,可以对用户隐藏实现细节

缺点是:

①桥接模式会增加系统的理解与设计难度,需要具备较高的技能

②桥接模式会增加系统的复杂度,因为每个抽象部分都需要一个独立的实现部分

③通常来说,桥接模式适用于在多个维度变化的系统中使用。

4、使用场景

两个独立变化的维度都需要进行扩展,且这两个维度可能会相互影响。

桥接模式可以将这两个维度分离开来,使得它们可以独立变化。

在一个类层次结构中,希望多个子类中共享一些公共的行为,且该公共行为可能需要在子类中进行扩展。

当一个类的抽象和它的实现都应该可以扩展的时候,将它们分离出来,使用桥接模式。

当一个对象存在多个维度变化的时候,使用桥接模式可以将这些维度的变化解耦。

5、代码实现

①首先定义一个抽象类,该类中包含一个指向另一个抽象类的引用。该抽象类可以是接口或抽象类。

②然后定义具体的实现类,它们继承抽象类并实现其抽象方法

③最后,定义实现类,它实现了抽象类中的接口。

④在使用时,我们可以通过创建不同的实现类来改变具体的实现方式,而不需要改变抽象类的代码。

总结如上步骤如下:

  1. 定义一个抽象类或接口,表示需要实现的功能->画图形Shape,即抽象部分。
  2. 定义一个抽象类或接口,表示实现的方式,即实现部分->Circle extends Shape。
  3. 创建一个实现类,继承或实现抽象部分和实现部分 ->具体实现的东西:RedCircle implements DrawAPI
  4. 使用实现类对象调用抽象部分的方法,实现对实现部分的操作->Shape redCircle=new Circle(参数)

5.1、图解

相关文章
|
2月前
|
设计模式 前端开发 数据库
「全网最细 + 实战源码案例」设计模式——桥接模式
桥接模式(Bridge Pattern)是一种结构型设计模式,通过将抽象部分与实现部分分离,使它们可以独立变化,从而降低代码耦合度,避免类爆炸,提高可扩展性。其结构包括实现类接口、具体实现类、抽象类和精确抽象类。适用于多维度扩展类、隐藏实现细节、简化庞杂类以及运行时切换实现方法的场景。优点包括高扩展性、隐藏实现细节、遵循开闭原则和单一职责原则;缺点是可能增加代码复杂度。示例中展示了不同操作系统播放不同格式视频文件的实现。
53 19
|
5月前
|
设计模式 PHP 开发者
PHP中的设计模式:桥接模式的解析与应用
在软件开发的浩瀚海洋中,设计模式如同灯塔一般,为开发者们指引方向。本文将深入探讨PHP中的一种重要设计模式——桥接模式。桥接模式巧妙地将抽象与实现分离,通过封装一个抽象的接口,使得实现和抽象可以独立变化。本文将阐述桥接模式的定义、结构、优缺点及其应用场景,并通过具体的PHP示例代码展示如何在实际项目中灵活运用这一设计模式。让我们一起走进桥接模式的世界,感受它的魅力所在。
|
6月前
|
设计模式 自然语言处理 算法
PHP中的设计模式:桥接模式的深入探索与应用
在PHP开发中,理解并运用设计模式是提升代码质量与可维护性的关键。本文聚焦于桥接模式——一种结构型设计模式,它通过封装一个抽象的接口,将实现与抽象分离,从而使得它们可以独立变化。不同于传统摘要的概述式表述,本文将以故事化的情境引入,逐步解析桥接模式的精髓,通过PHP代码示例详细展示其在实际项目中的应用,旨在为读者提供一个既深刻又易于理解的学习体验。
45 1
|
6月前
|
设计模式 Java
Java设计模式-桥接模式(9)
Java设计模式-桥接模式(9)
|
7月前
|
设计模式 存储 Java
【十】设计模式~~~结构型模式~~~享元模式(Java)
文章详细介绍了享元模式(Flyweight Pattern),这是一种对象结构型模式,通过共享技术实现大量细粒度对象的重用,区分内部状态和外部状态来减少内存中对象的数量,提高系统性能。通过围棋棋子的设计案例,展示了享元模式的动机、定义、结构、优点、缺点以及适用场景,并探讨了单纯享元模式和复合享元模式以及与其他模式的联用。
【十】设计模式~~~结构型模式~~~享元模式(Java)
|
7月前
|
设计模式 存储 Java
【九】设计模式~~~结构型模式~~~外观模式(Java)
文章详细介绍了外观模式(Facade Pattern),这是一种对象结构型模式,通过引入一个外观类来简化客户端与多个子系统之间的交互,降低系统的耦合度,并提供一个统一的高层接口来使用子系统。通过文件加密模块的实例,展示了外观模式的动机、定义、结构、优点、缺点以及适用场景,并讨论了如何通过引入抽象外观类来提高系统的可扩展性。
【九】设计模式~~~结构型模式~~~外观模式(Java)
|
7月前
|
设计模式 Java
【八】设计模式~~~结构型模式~~~装饰模式(Java)
文章详细介绍了装饰模式(Decorator Pattern),这是一种对象结构型模式,用于在不使用继承的情况下动态地给对象添加额外的职责。装饰模式通过关联机制,使用装饰器类来包装原有对象,并在运行时通过组合的方式扩展对象的行为。文章通过图形界面构件库的设计案例,展示了装饰模式的动机、定义、结构、优点、缺点以及适用场景,并提供了Java代码实现和应用示例。装饰模式提高了系统的灵活性和可扩展性,适用于需要动态、透明地扩展对象功能的情况。
【八】设计模式~~~结构型模式~~~装饰模式(Java)
|
7月前
|
设计模式 XML 存储
【七】设计模式~~~结构型模式~~~桥接模式(Java)
文章详细介绍了桥接模式(Bridge Pattern),这是一种对象结构型模式,用于将抽象部分与实现部分分离,使它们可以独立地变化。通过实际的软件开发案例,如跨平台视频播放器的设计,文章阐述了桥接模式的动机、定义、结构、优点、缺点以及适用场景,并提供了完整的代码实现和测试结果。桥接模式适用于存在两个独立变化维度的系统,可以提高系统的可扩展性和灵活性。
【七】设计模式~~~结构型模式~~~桥接模式(Java)
|
5月前
|
设计模式 Java
Java设计模式之桥接模式
这篇文章介绍了Java设计模式中的桥接模式,包括桥接模式的目的、实现方式,并通过具体代码示例展示了如何分离抽象与实现,使得两者可以独立变化。
64 0
|
7月前
|
设计模式 XML 存储
【六】设计模式~~~结构型模式~~~适配器模式(Java)
文章详细介绍了适配器模式(Adapter Pattern),这是一种结构型设计模式,用于将一个类的接口转换成客户期望的另一个接口,使原本不兼容的接口能够一起工作,提高了类的复用性和系统的灵活性。通过对象适配器和类适配器两种实现方式,展示了适配器模式的代码应用,并讨论了其优点、缺点以及适用场景。