【Java中23种面试常考的设计模式之桥接模式(Bridge)---结构型模式】

【设计模式】Java 设计模式之桥接模式(Bridge) 本文概述了桥接设计模式的核心原理和应用场景。桥接模式通过分离抽象部分和实现部分,使得两者能够独立变化,从而提升了系统的灵活性和可扩展性。它特别适用于那些需要在多个维度上进行变化,或者要求抽象和实现独立演进的场景。实现桥接模式时,需明确抽象与实现的关系,设计稳定的抽象接口,并保持实现细节的独立性。尽管桥接模式可能增加系统的复杂性并带来一定的性能损失,但其带来的灵活性通常能够弥补这些不足。展望未来,桥接模式将继续在软件开发中发挥重要作用,结合其他技术和设计模式,共同构建高效、灵活且可靠的系统架构。 阅读详情

【Java中23种面试常考的设计模式之桥接模式(Bridge)—结构型模式】

知识回顾:

之前我们讲过的设计模式在这里呦:
【面试最常见的设计模式之单例模式】
【面试最常见的设计模式之工厂模式】
【Java中23种面试常考的设计模式之备忘录模式(Memento)—行为型模式】
【Java中23种面试常考的设计模式之观察者模式(Observer)—行为型模式】
【Java中23种面试常考的设计模式之模板模式(Template)—行为型模式】
【Java中23种面试常考的设计模式之状态模式(State)—行为型模式】
【Java中23种面试常考的设计模式之策略模式(Strategy)—行为型模式】
【Java中23种面试常考的设计模式之迭代器模式(Iterator)—行为型模式】
【Java中23种面试常考的设计模式之访问者模式(Visitor)—行为型模式】
【Java中23种面试常考的设计模式之中介者模式(Mediator)—行为型模式】
【Java中23种面试常考的设计模式之解释器模式(Interpreter)—行为型模式】
【Java中23种面试常考的设计模式之命令模式(Command)—行为型模式】
【Java中23种面试常考的设计模式之责任链模式(Chain of Responsibility)—行为型模式】
【Java中23种面试常考的设计模式之适配器模式(Adapter)—结构型模式】
接下来我们要进行学习的是:【Java中23种面试常考的设计模式之桥接模式(Bridge)—结构型模式】。

桥接模式

桥接模式: 将抽象部分与实现部分分离,使它们都可以独立的变化。

解决的问题

  1. 对于两个独立变化的维度,使用桥接模式再适合不过了。
  2. 处理多层继承结构,处理多维度变化的场景,将各个维度设计成独立的继承结构,使各个维度可以独立的扩展在抽象层建立关联。

生产开发中常用的使用场景

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

模式优点与缺点

优点
  1. 抽象和实现的分离。 桥接模式可以取代多层继承的方案。 多层继承违背了单一职责原则,复用性较差,类的个数也非常多。桥接模式可以极大的减少子类的个数,从而降低管理和维护的成本。
  2. 优秀的扩展能力。桥接模式极大的提高了系统可扩展性,在两个变化维度中任意扩展一个维度,都不需要修改原有的系统,符合开闭原则。
缺点
  1. 桥接模式的引入会增加系统的理解与设计难度。

核心角色

抽象类(Abstraction): 维护了Implementor,即它的实现子类Concretelmplementor,二者是聚合关系,Abstraction充当桥接类
ConcreteAbstraction: 是Abstraction抽象类的子类
Implementor: 行为实现类的接口
ConcreteImplementor: 行为的具体实现类
Client类: 桥接模式的调用者

注意:对应我们例子中角色
Abstraction–》台式还是笔记本
ConcreteAbstraction–》台式笔记本具体实现
Implementor–》电脑牌子
ConcreteImplementor–》电脑牌子具体实现
Client–Main:测试类。

UML类图

在这里插入图片描述

实现代码:我们举这样一个栗子,作为计算机专业的我们,一台电脑是必不可少的,但是我们该选择台式机还是笔记本呢?又该选择什么牌子的电脑呢?这俩个都是不同维度的一些变化,所以需要单独考虑,先选择台式机还是笔记本,然后再选择电脑的牌子。最终组合我们最想要的电脑。那么,让我们一起来组装一台合适的电脑吧!

Computer 类
package com.bridge;

public class Computer {
	
	protected Brand brand;
	
	public Computer(Brand b) {
		this.brand = b;
	}
	
	public void chooseComputer(){
		brand.chooseBrand();
	}
	
}
Desktop 类
package com.bridge;

public class Desktop extends Computer {

	public Desktop(Brand b) {
		super(b);
	}
	
	@Override
	public void chooseComputer() {
		super.chooseComputer();
		System.out.println("我们选择的电脑类型是--->台式机");
        System.out.println("组装完成。。。。。。。。");
	}
}
Laptop 类
package com.bridge;

public class Laptop extends Computer {
	
	public Laptop(Brand b) {
		super(b);
	}
	
	@Override
	public void chooseComputer() {
		super.chooseComputer();
		System.out.println("我们选择的电脑类型是--->笔记本");
        System.out.println("组装完成。。。。。。。。");
	}
}

Brand 类
package com.bridge;

public interface Brand {
	void chooseBrand();
}

Lenovo 类
package com.bridge;

public class Lenovo implements Brand {

	@Override
	public void chooseBrand() {
		System.out.println("我们选择的电脑品牌是--->联想");
	}
	
}
Huawei 类
package com.bridge;

public class Huawei implements Brand {
	
	@Override
	public void chooseBrand() {
		System.out.println("我们选择的电脑品牌是--->华为");
	}
	
}
客户端测试代码Client-Main
package com.bridge;

public class Main{
    public static void main(String[] args) {
        Computer  c = new Desktop(new Huawei());
        c.chooseComputer();
        System.out.println("------------------");
        Computer c2 = new Laptop(new Lenovo());
        c2.chooseComputer();
    }
}

运行结果展示:

在这里插入图片描述

好了,到这里【Java中23种面试常考的设计模式之桥接模式(Bridge)—结构型模式】就结束了,23种设计模式持续更新汇总中。

《深入 UFS Explorer:自定义 RAID 配置指南》 UFS Explorer支持以虚拟模式组装任何受支持的RAID配置,以便后续访问其内容或恢复丢失数据。启动RAID构建器;向RAID构建器主内容区域的列表中添加RAID组件;为不可用组件插入占位符(需当前RAID级别支持且软件兼容);调整组件的准确顺序;在“虚拟RAID配置”区域设置RAID参数;以虚拟模式组装阵列各部分。程序主窗口“存储设备导航面板”中打开的任何存储设备(包括驱动器、逻辑卷、磁盘镜像、虚拟磁盘及其他复杂存储设备)均可作为RAID组件。 阅读详情

相关推荐

【一步到位】Android Studio 实现安卓连接阿里云物联网云平台

最新版本目前是Android Studio Iguana | 2024.1.2,你可以到官网上去找之前的版本,手上有工作项目的不要去轻易尝试,说不定你就编译失败了,失败了也不要担心,解决就可以了。

m0_73799445的博客 1万+

Java设计模式之桥接(Bridge)模式

桥接模式的主要思想是将一个对象的实现部分与它的抽象部分分离开来,使它们可以独立地变化。桥接模式通过把实现和抽象解耦,使得它们能够各自独立地变化,而不会互相影响。在这种方式下,抽象和实现可以以各自的方式变化,而不会影响到对方。桥接模式常用于多维变化的系统中,可以帮助开发者更好地应对变化。

小虎哥的技术博客 307

JFET放大电路实例设计仿真

参照《晶体管电路设计》中的例子 JFET 2SK184 JFET 2SK184 数据手册如下 电路设计 共源放大 步骤:1、静态工作点 2N4416 1ma 2、RD和RS A=5 5:1 RS 2V /1m=2k RD 5k 3、偏压VG 根据传输特性 VGS-ID vgs=-0.7 vg=2-0.7=1.3 400k^2/50k...

f的博客 7440

JAVA--桥接器

Java中的桥接器(Bridge)通常指的是一种设计模式,称为桥接模式(Bridge Pattern)。桥接模式是一种结构型设计模式,用于将抽象部分与其实现部分分离,使它们可以独立地变化。这种模式通过定义一个桥接接口来实现,这个接口充当抽象和实现之间的桥梁。

qq_56438516的博客 1366

STC15W204S最小系统开发指南:从串口通讯到自动热加载全流程

本文详细介绍了STC15W204S最小系统的完整开发流程。从芯片资源解析、最小系统搭建、串口通讯驱动编写(使用Timer2生成波特率),到实现基于魔术值触发的自动热加载功能,并最终集成Keil与STC-ISP软件,构建高效的自动化开发工作流,显著提升嵌入式调试效率。

a1b2c的博客 391

一文搞懂自适应激光控制技术,开启光学新时代

自适应激光控制技术作为现代光学领域的关键技术,以其独特的原理和高效的工作机制,在科研、工业等众多领域展现出了巨大的应用价值。通过对激光波前的实时测量与补偿,它成功克服了激光在传输和应用过程中面临的诸多挑战,显著提升了激光的光束质量和应用效果。在科研领域,它助力天文观测突破大气湍流的限制,让我们得以更清晰地窥探宇宙的奥秘;在激光核聚变研究中,为实现高效的核聚变反应提供了关键支持,为解决能源问题带来了新的希望。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2529

js键盘事件中的键码对照表

2021年的金三银四一眨眼就到了,对于很多人来说是跳槽的好机会,大厂面试远没有我们想的那么困难,摆好心态,做好准备,你也可以的。另外,面试中遇到不会的问题不妨尝试讲讲自己的思路,因为有些问题不是考察我们的编程能力,而是逻辑思维表达能力;最后平时要进行自我分析与评价,做好职业规划,不断摸索,提高自己的编程能力和抽象思维能力。BAT面试经验实战系列:Spring全家桶+Redis等其他相关的电子书:源码+调优面试真题:《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》

2401_84046577的博客 954

多模态大模型在AI人工智能领域的创新实践探索

随着人工智能技术的飞速发展,单一模态的数据处理已经难以满足复杂现实场景的需求。多模态大模型通过融合多种模态的数据,如文本、图像、音频等,能够更全面、深入地理解和处理信息,为人工智能的发展带来了新的机遇和挑战。本文的目的在于深入探讨多模态大模型在AI人工智能领域的创新实践,包括其核心概念、算法原理、实际应用等方面,旨在为相关领域的研究人员和从业者提供全面的技术参考和实践指导。本文的范围涵盖了多模态大模型的基本原理、算法实现、数学模型、项目实战以及实际应用场景等多个方面。

大模型应用工坊 1316

【设计模式——学习笔记】23种设计模式——桥接模式Bridge(原理讲解+应用场景介绍+案例介绍+Java代码实现)

讲解桥接模式的思想,介绍其常见的应用场景,举例说明桥接模式的实现方式

我只管埋头前行,剩下的交给时间。 3290

EtherCAT总线运动控制学习笔记(RXXW_Dor)

说到总线控制,就要说到报文、对象字典、PN通信我们大部分会说报文,EtherCAT通信我们常说对象字典,叫法不一样,但是原理基本一致,下面我们简单认识下上面是对象字典。

RXXW_Dor的博客 5427

5步VS传统WinForm!AntdUI让界面设计从“土味”到“超模”只需30秒?

摘要:墨瑾轩编程教程《AntdUI的5大魔法步骤》详解如何将传统WinForm升级为现代化UI。教程通过5个核心步骤:安装AntdUI库、控件替换、主题定制、复杂布局构建及实战案例演示,对比传统开发与AntdUI在美观度(动态阴影/动画)、开发效率(拖拽组件VS手工绘制)和主题定制(一键换肤VS重写控件)的显著差异。使用C#代码示例展示按钮动画、3D翻转、聊天界面等特效实现,帮助开发者快速掌握这一基于Ant Design风格的WinForm增强框架。(150字)

java专栏 1125

Java 23 种设计模式:从踩坑到精通 —— 开篇及系列介绍

摘要:本文是《Java 23种设计模式:从踩坑到精通》系列的总入口与导航页。文章梳理了设计模式的起源与三大分类,结合SOLID六大原则,详解为什么2026年设计模式依然重要。提供25篇完整目录、面试高频Top10速记、场景速查索引、易混模式对比表及分级阅读路线,可作为长期收藏的设计模式学习手册。

折哥|智能物流与Java实战,副高数据库工程师。深耕出版社物流WMS/OMS(线体/立库/VGA),也分享Java进阶与OMS电商对接。Oracle→PG实战派。相信沉淀可迁移能力,分享通用技术,不藏不虚。 3578

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Java 23 种设计模式:从踩坑到精通 | 桥接模式 —— 类爆炸?试试分离抽象与实现

消息类型 × 发送渠道,继承让子类数量爆炸?桥接模式分离抽象与实现,用 M+N 组合替代 M×N 继承,两个维度独立扩展、自由组合。本文从消息系统重构出发,结合 JDBC、SLF4J 源码,带你彻底掌握“组合优于继承”的核心设计思维。

折哥|智能物流与Java实战,副高数据库工程师。深耕出版社物流WMS/OMS(线体/立库/VGA),也分享Java进阶与OMS电商对接。Oracle→PG实战派。相信沉淀可迁移能力,分享通用技术,不藏不虚。 1305

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

《JAVA面经实录》- 23种设计模式面试题(二)

《JAVA设计模式面试精要》摘要:本文系统解析23种设计模式,分为创建型(单例、工厂等)、结构型(适配器、代理等)和行为型(观察者、策略等)三大类。重点阐述六大设计原则(SOLID+迪米特法则),每个模式均包含定义、原则应用、优缺点分析及典型业务场景(如电商支付、审批系统等),并附Java代码实现。特别强调模式选择需结合实际需求,避免过度设计,同时提供清晰的模式对比表格,帮助开发者快速掌握各模式核心特征与应用场景。

专注 Java 后端开发,分享基础语法、JVM、并发、Spring 全家桶、微服务、分布式、性能优化等实战干货。坚持输出高质量技术笔记,用简单语言讲清复杂原理,助力每一位 Java 开发者稳步进阶。 894

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

23个设计模式一文搞懂

本笔记涵盖 23 种经典设计模式,按创建型、结构型、行为型三大类整理。每个模式配有生活类比、核心思想、结构图解、实现要点、真实应用案例、适用场景、优缺点分析及常见面试题。

weixin_72753562的博客 802

结构型设计模式解析:适配器、桥接等7种模式实战

结构型设计模式是面向对象编程中的核心概念,主要用于处理类与对象之间的组合关系。这类模式通过定义清晰的接口和层次结构,显著提升代码的可复用性和扩展性。其核心原理包括接口适配、功能扩展和结构简化等关键技术,在系统架构设计中具有重要价值。典型应用场景包括第三方库整合、跨平台开发、复杂系统封装等工程实践。适配器模式通过转换接口解决兼容性问题,桥接模式分离抽象与实现以应对多维度变化,而装饰器模式则实现了运行时功能的动态扩展。掌握这些模式能有效解决软件开发中的接口设计、系统解耦等常见挑战。

weixin_30786657的博客 316

我用泡妹子追 MM 的技术学会了 23 种设计模式!

编辑:业余草来源:https://www.xttblog.com/?p=4918阿里系饿了么正在大量招人,我内推 Java 方向!薪资不设上限,工作年龄...

xmt1139057136的专栏 622

《JAVA面经实录》- SpringBoot 电商项目23种设计模式(三)

最终版·生产级 SpringBoot 电商项目: 已补全所有漏洞 + 23 种设计模式真实串联 + Spring 生态融合 + 可简历可面试可上线

专注 Java 后端开发,分享基础语法、JVM、并发、Spring 全家桶、微服务、分布式、性能优化等实战干货。坚持输出高质量技术笔记,用简单语言讲清复杂原理,助力每一位 Java 开发者稳步进阶。 556

C++设计模式实战解析:从核心思想到工程应用

设计模式是软件工程中解决常见设计问题的经典方案,其核心思想在于识别并封装变化点,从而提升代码的可维护性和扩展性。从原理上看,设计模式通过抽象与多态、组合优于继承等原则,将易变的实现细节与稳定的接口分离。在C++开发中,这一技术价值尤为突出,它能有效管理对象生命周期、组织复杂类结构、协调对象间协作,从而应对内存安全、性能优化和系统解耦等核心挑战。结合C++的RAII、智能指针、模板等特性,设计模式可广泛应用于游戏引擎、高性能服务器、桌面客户端等场景,帮助开发者构建健壮且灵活的软件架构。本文以工厂方法和观察者模

406

Java基础学习笔记

## Java基础面试题 ### 一、面向对象 (⭐⭐⭐) #### 1、谈谈对java多态的理解? 多态是指父类的某个方法被子类重写时,可以产生自己的功能行为,同一个操作作用于不同对象,可以有不同的解释,产生不同的执行结果。 多态的三个必要条件: - 继承父类。 - 重写父类的方法。 - 父类的引用指向子类对象。 什么是多态 面向对象的三大特性:封装、继承、多态。从一定角度来看,封...

java技术专家全栈成长之路 483

设计模式-桥接模式

结构型设计模式结构型模式主要总结了一些类和对象组合在一起的经典结构,这些经典结构可以解决对应特定场景的问题.一共包括七种:代理模式、桥接模式、装饰者模式、适配器模式、门面(外观)模式、组合模式、和享元模式。

hey_lie的博客 375

Java 设计模式之Bridge桥接模式

将抽象和具体实现两个维度分离,让他们独立发展,并且在抽象类里聚合一个具体实现,通过聚合替代继承,用于解决类爆炸的问题。 这种模式要求对系统的抽象的理解和设计难度都比较大。 例子: 这里要对花,气球等装饰物进行显示,可以显示一个装饰物,也可以显示多个装饰物,那么将装饰物作为具体实现,将显示作为抽象类,在抽象类里有一个装饰物的引用,对抽象类进行扩展可以进行多次显示,对具体实现扩展为不同类型装饰物。 Display,NumberDisplay DisplayImpl, FlowerDisplayImpl

风香枫 272

浅谈Java设计模式——桥接模式(Bridge)

一、概述         将抽象部分与它的实现部分分离,使它们都可以独立地变化。如果说某个系统能够从多个角度来进行分类,且每一种分类都可能会变化,那么我们需要做的就是讲这多个角度分离出来,使得他们能独立变化,减少他们之间的耦合,这个分离过程就使用了桥接模式。所谓桥接模式就是讲抽象部分和实现部分隔离开来,使得他们能够独立变化。桥接模式将继承关系转化成关联关系,封装了变化,完成了解耦,减少了系统中类...

IdealSpring的博客 1311

java bridge 模式_Java设计模式之桥模式(Bridge模式)介绍

Bridge定义:将抽象和行为划分开来,各自独立,但能动态的结合。为什么使用桥模式通常,当一个抽象类或接口有多个具体实现(concrete subclass),这些concrete之间关系可能有以下两种:1.这多个具体实现之间恰好是并列的,如前面举例,打桩,有两个concrete class:方形桩和圆形桩;这两个形状上的桩是并列的,没有概念上的重复,那么我们只要使用继承就可以了。2.实际应用上,...

weixin_39647471的博客 833

Java设计模式——桥接模式(Bridge)

桥接模式 简介 桥接模式的主要目的是将类的功能层次结构和类的实现层次结构连接起来。 类的功能层次结构 父类具有基本功能 子类中加入新的功能 这种为了增加新的功能,而产生的层次结构叫做类的功能层次结构 类的实现层次结构 父类通过定义抽象方法来定义接口 子类通过实现具体方法来实现接口 这时产生的层次接口叫做类的实现层次结构 当我们编写子类的时候,需要先确定自己的意图,“是增...

Mirt_的博客 453

php-java-bridge的使用

一、环境 操作系统:windows java版本:1.8 php-java-bridge版本:7.2.1(最新版本) 服务器:nginx(用什么服务器应该不影响的) 二、操作 1、安装java:这个不用多说,网上很多教程,跟着操作安装和配置环境变量就可以了。 2、php环境:这个也有很多教程,相信如果需要看这个贴子的人,php环境是已经配置好了的。 3、解压php-java-bridge的压缩文件: a.得到一个JavaBridge.war文件,将后缀改为jar b.再解压刚刚的ja

UsbFor的博客 2717
上一篇: 【Leetcode每日一题:1773.统计匹配检索规则的物品数量~~~遍历+模拟+计数】
下一篇: 【Docker之Swarm详细讲解&Swarm集群搭建&管理节点&工作节点&Raft一致性协议&overlay网络&Docker结合Swarm部署WordPress个人博客实战】
硕风和炜
硕风和炜 优质创作者: Java技术领域 优质创作者: Java技术领域
博客等级 码龄7年 2万+粉丝 1024原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硕风和炜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值