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

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

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、图解

相关文章
|
7月前
|
设计模式 存储 缓存
【设计模式】【结构型模式】享元模式(Flyweight)
一、入门 什么是享元模式? 享元模式(Flyweight Pattern)是一种结构型设计模式,旨在通过共享对象来减少内存使用,特别适用于存在大量相似对象的情况。 它的核心思想是将对象的内在状态(不变
265 16
|
7月前
|
设计模式 Java 数据库连接
【设计模式】【结构型模式】代理模式(Proxy)
一、入门 什么是代理模式? 代理模式(Proxy Pattern)是一种结构型设计模式,允许你提供一个代理对象来控制对另一个对象的访问。 代理对象在客户端和目标对象之间起到中介作用,可以在不改变目标对
190 10
|
7月前
|
设计模式 Java 定位技术
【设计模式】【结构型模式】组合模式(Composite)
一、入门 什么是组合模式 组合模式(Composite Pattern)是一种结构型设计模式,它允许你将对象组合成树形结构来表示“部分-整体”的层次关系。组合模式使得客户端可以统一处理单个对象和组合对
233 10
|
7月前
|
关系型数据库 Java MySQL
【设计模式】【结构型模式】桥接模式(Bridge)
一、入门 什么是桥接模式? 桥接模式(Bridge Pattern)是一种结构型设计模式,核心思想是将抽象与实现分离,让它们可以独立变化。简单来说,它像一座“桥”连接了两个维度的变化,避免用继承导致代
395 10
|
7月前
|
设计模式 前端开发 Java
【设计模式】【结构型模式】适配器模式(Adpter)
一、入门 什么是适配器模式? 适配器模式是Java中常用的结构型设计模式,它的核心作用就像现实中的电源转换器一样---让原本不兼容的两个接口能够协同工作。 为什么要用适配器模式? 假设我们需要在电商系
178 10
|
7月前
|
设计模式 Java 数据库连接
【设计模式】【结构型模式】外观模式(Facde)
一、入门 什么是外观模式? 一种结构型设计模式,通过为子系统中的一组接口提供一个统一的高层接口(称为外观),来简化客户端与复杂子系统的交互过程。其本质是建立抽象层来隔离复杂度。 为什么要有外观模式?
297 9
|
7月前
|
设计模式 缓存 安全
【设计模式】【结构型模式】装饰者模式(Decorator)
一、入门 什么是装饰者模式? 装饰者模式(Decorator Pattern)是 Java 中常用的结构型设计模式,它能在不修改原有对象结构的前提下,动态地为对象添加额外的职责。 为什么要装饰者模式?
170 8
|
11月前
|
设计模式 前端开发 数据库
「全网最细 + 实战源码案例」设计模式——桥接模式
桥接模式(Bridge Pattern)是一种结构型设计模式,通过将抽象部分与实现部分分离,使它们可以独立变化,从而降低代码耦合度,避免类爆炸,提高可扩展性。其结构包括实现类接口、具体实现类、抽象类和精确抽象类。适用于多维度扩展类、隐藏实现细节、简化庞杂类以及运行时切换实现方法的场景。优点包括高扩展性、隐藏实现细节、遵循开闭原则和单一职责原则;缺点是可能增加代码复杂度。示例中展示了不同操作系统播放不同格式视频文件的实现。
263 19
|
设计模式 PHP 开发者
PHP中的设计模式:桥接模式的解析与应用
在软件开发的浩瀚海洋中,设计模式如同灯塔一般,为开发者们指引方向。本文将深入探讨PHP中的一种重要设计模式——桥接模式。桥接模式巧妙地将抽象与实现分离,通过封装一个抽象的接口,使得实现和抽象可以独立变化。本文将阐述桥接模式的定义、结构、优缺点及其应用场景,并通过具体的PHP示例代码展示如何在实际项目中灵活运用这一设计模式。让我们一起走进桥接模式的世界,感受它的魅力所在。
|
设计模式 自然语言处理 算法
PHP中的设计模式:桥接模式的深入探索与应用
在PHP开发中,理解并运用设计模式是提升代码质量与可维护性的关键。本文聚焦于桥接模式——一种结构型设计模式,它通过封装一个抽象的接口,将实现与抽象分离,从而使得它们可以独立变化。不同于传统摘要的概述式表述,本文将以故事化的情境引入,逐步解析桥接模式的精髓,通过PHP代码示例详细展示其在实际项目中的应用,旨在为读者提供一个既深刻又易于理解的学习体验。
157 19

热门文章

最新文章