BRIDGE(桥接)—对象结构型模式

VMware 虚拟机里连不上网的五种解决方案 在VMware虚拟机里的虚拟机系统连接不上网络 首先,注意查看适配器选项里的网络连接这两个网络连接是否存在,如果不存在可以重新装一下VM 如果存在,连不上网 解决办法一: 虚拟机设置里,找到“网络适配器”,右边的网络连接选择“NAT 模式”,如果不行的话再linux系统。还是不行的话接着看第二种解决方案。 解决方法二: 可能原因是VMware NET Service... 阅读详情

桥接模式【bridge】

  • 什么是桥接模式
    将抽象部分于它的实现部分分离,使它们都可以独立地变化,这个摘自<设计模式>的解释,一般很难去理解,稍后我会以代码加文字的形式给大家解释清楚。

  • 什么场景会用到桥接模式
    现在给大家一个场景,比如现在要做这样一个功能,需求上描述,分别开发多个软件应用,同时需要适应不同的系统,再详细一点,比如,现在开发了一款购物app和阅读app,需要兼容安卓和苹果系统,这时候大家需要怎么进行设计。
    大部分新手程序员在接触到这个的时候可能第一时间想到的是继承,通过继承的方式去重写父类的方法,类图如下:
    初始类图

就是父类有抽象方法,具体怎么实现由子类去实现
在这里插入图片描述
就是父类是mobile,然后包含运行game和运行read的方法,由每个子类去实现,这样就有了四种不同的实现,这么设计的缺点在哪里呢,第一就是每个app在安卓和苹果系统里面都需要一个子类,比如增加了一个英语学习app,就要分别去两个系统里面添加对应的子类,第二,如果需求改变,比如,需要增加华为鸿蒙系统的兼容,那么这个改变无疑是巨大的,并且如果系统里面多100个要兼容的app,那么就要去增加100个鸿蒙下面的子类,分别不同的实现。
这个时候桥接模式就可以好好利用起来了, 回顾一下桥接模式的概念。由于实现的方式有多种,桥接模式的核心意图就是把这些实现独立出来,让他们各自的变化。这就使得每种实现的变化不会影响其他实现,从而达到应对变化的目的。让我们把设计图修改一下,以达到这个目的
在这里插入图片描述

代码如下:
先定义一个Software接口:
public interface Software {

	void operate();
}

再写它的两个子类

public class Game implements Software   {

	@Override
	public void operate() {
		System.out.println("init game");
	}
	
}
public class Read implements Software {

	@Override
	public void operate() {
		System.out.println("init read");
	}

}

接着开始添加一个抽象类Mobile

public abstract class Mobile {
	
	private Software software;
	
	public Software getSoftware() {
		return software;
	}

	public void setSoftware(Software software) {
		this.software = software;
	}

	public abstract void run();
}

然后是它的两个子类实现

public class IOS extends Mobile {

	@Override
	public void run() {
		System.out.println("IOS init..");
		getSoftware().operate();
	}

}
public class Android extends Mobile {

	@Override
	public void run() {
		System.out.println("Android init..");
		getSoftware().operate();
	}
}

从以上结构不难看出,若以后不管是添加新的操作系统还是添加新的app都不会相互影响,这就是松耦合

public static void main(String[] args) {
		Mobile mobile = new Android();
		mobile.setSoftware(new Game());
		mobile.run();
		mobile.setSoftware(new Read());
		mobile.run();
	}

现在回想起来,桥接模式这个概念是不是逐渐清晰了,说的通俗易懂一点就是,在我们现实场景中,系统可能按多种维度进行分类,每一种分类都可能发生变化,那么就把这种多角度分类分离出来让他们不相互依赖,减少它们之间的耦合。重点是理解如何将抽象化与现实化的脱耦的。

相关参考:
<大话设计模式>,<设计模式,可复用面向对象软件的基础>
源码在此

学Simulink--基于风力发电系统的场景实例:海上风电场在复杂海况下的动态响应仿真 本实例将创建一个针对海上风电场在复杂海况下的动态响应模型。该模型不仅考虑了不同风速条件的影响,还引入了波浪和水流对风机塔架及基础结构的影响。通过仿真验证系统的有效性,并探索最佳控制参数设置以提高整体性能和稳定性。本教程展示了如何在Simulink中实现一个海上风电场在复杂海况下的动态响应仿真模型,并分析其性能。通过这种方式,我们不仅可以验证所提出的技术手段在提高海上风电场稳定性和效率方面的有效性,还能进一步探索优化参数以适应特定的应用场景。 阅读详情

相关推荐

ANSYS APDL生死单元实战:焊接模拟从入门到精通(附完整命令流)

本文详细介绍了使用ANSYS APDL进行焊接模拟的核心技术——生死单元法。通过一个完整的平板对接焊案例,从原理剖析、模型搭建、命令流编写到移动热源施加和后处理,手把手指导工程师掌握这一动态仿真方法,有效预测焊接过程中的温度场、残余应力与变形。

k6l7m8n9的博客 150

设计模式之八:Bridge(桥接)—对象结构型模式

22:01:24 星期一 22:01:37  Bridge,继续GOF。博客园 设计模式之八:Bridge(桥接)—对象结构型模式 和Stratege模式相比,Bridge可以说是“包含Stratege”。 Stratege : 1个物件对应N个实现。仅 实现端(类) 有细分。 Bridge    : M个物件对应N个实现。抽象端(类) 和 实现端(类) 都有细

自由度 876

C++总结笔记

/ ++操作 这是因为定义的数组,申请的是连续的内存空间,当ptr++(ptr是int类型的指针变量),地址空间向后偏移是以int类型的大小为单位进行偏移的,相当于int类型数组元素的向后偏移。使用场景:它是最通用的转换形式,用于将一种类型转换为另一种类型,例如基本数据类型的转换(如 float 转 int),指向基类的指针或引用转为指向派生类的指针或引用等。在派生类被调用时会调用派生类中的函数,不会调用基类中的被重写的函数(基类中的函数需要加上virtual才可以,即基类中的函数是虚函数)。

weixin_50890461的博客 5233

桥接模式(Bridge)(对象结构型模式)

桥接模式(Bridge)(对象结构型模式)

u010947098的专栏 570

神经网络基础-从零开始搭建一个神经网络

人工神经网络(Articial Neural Network,简写为ANN)也称为神经网络(NN),是一种模仿生物神经网络和功能的计算模型,人脑可以看做是一个生物神经网络,由众多的神经元连接而成,各个神经元传递复杂的电信号,树突接收到输入信号,然后对信号进行处理,通过轴突输出信号。人工神经网络也是类似,通过模仿人脑的“学习机器”,通过不断“看”数据(比如图片,数字),自己总结规律,最终学会预测(比如分类图片)在深度学习中,损失函数是用来衡量模型参数的质量的函数,衡量的方式是比较网络输出和真实输出的差异。

Zach的博客 4014

【超详细】数据分析笔试题分享,可以收藏后仔细阅读_数据分析岗位笔试题目

这种做法是最精确的做法,保留了所有的信息,也未添加任何额外信息,若预处理时把所有的变量都这样处理,会大大增加数据的维度。15、在某座城市出现了某种流行病,且已知某座城市男女人数相同,男性患该病的概率为5%,女性为0.25%,现已知该城市的小明得了此病,请问小明为男性的概率是() B。D项,使用方差作为特征评分标准,如果某个特征的取值差异不大,通常认为该特征对区分样本的贡献度不大,因此在构造特征过程中去掉方差小于阈值的特征。LTV,用户生命周期价值,是产品从用户获取到流失所得到的全部收益的总和。

2401_89824744的博客 948

BRIDGE(桥接)-- 对象结构型模式

c. Implementor: 定义实现类的接口,该接口不一定要与Abstraction的接口完全一致;a. Abstraction: 定义抽象类的接口。d. ConcreteImplementor: 实现Implementor接口并定义它的的具体实现。c. 对一个抽象的实现部分的修改应对客户不产生影响,即客户的代码不必重新编译。b. 类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充。a. 你不希望在抽象和它的实现部分之间有一个固定的绑定关系。d. 你想对客户完全隐藏抽象的实现部分。

zhangsandidi的博客 1316

MTK眼中6G物理层与无线协议的进化之路

提议统一波束和小区级的测量、报告和切换框架/流程,进一步减少移动性切换过程中的中断,采用可扩展框架/流程,允许在不同移动性场景中进行部分用户设备配置更新以实现快速切换,支持用户设备发起的移动性(同步/切换)以降低延迟和因信令交换导致的失败,设计移动性RS以实现空闲状态下的节能和连接状态下的无缝用户体验,实现5G/6G间的无缝互操作移动性,为固定无线接入(FWA)提供潜在增强,构建统一的跨层移动性框架以降低复杂度、减少中断和失败。为适应多样化的流量类型,需要灵活的帧结构和高层时间对齐。

asd199086的博客 1745

面向对象设计模式之Bridge桥接模式(结构型)

问题分析:假如我们需要开发一个同时支持PC和手机的坦克游戏,游戏在PC和手机上功能都一样,都有同样的类型,面临同样的功能需求变化,比如坦克可能有多种不同的型号:T50,T75,T90..对于其中的坦克设计,我们可能很容易设计出来一个Tank的抽象类,然后各种不同型号的Tank继承自该类,但是PC和手机上的图形绘制、声效、操作等实现完全不同...因此对于各种型号的坦克,都 要提供各种不同平台上的坦克

漫步天涯-IT 2555

Windows系统3D Gaussian Splatting环境搭建全攻略:从零开始到成功运行

本文详细介绍了在Windows系统上搭建3D Gaussian Splatting环境的完整流程,包括CUDA 12.6安装、Anaconda环境配置、代码获取与依赖安装等关键步骤。针对Windows平台特有的环境配置问题,提供了实用的解决方案和常见错误排查方法,帮助开发者快速实现3D Gaussian Splatting的成功运行。

weixin_30832143的博客 452

2024年11月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(一)

软考高级考试包含三个科目:信息系统综合知识、系统架构设计案例分析和系统架构设计论文。考试形式为机考。本文主要回顾2024年下半年(2024-11-10)系统架构设计师考试上午综合知识科目的选择题,同时附带参考答案、解析和所涉知识点。由于机考时题目顺序是打乱的,本文题目所标序号只为区分不代表实际顺序。综合知识。

一几文的编程学习笔记。 9268

对象结构型——桥接模式(Bridge)

一、功能   将抽象部分与它的实现部分分离,使它们都可以独立地变化。 二、结构图 #include using namespace std; class Implementor { public: virtual void OperationImp() = 0 ; } ; class ConcreteImplementorA : public Implementor {

学以精工 2097

8、使用 TPCx - HCI 基准测试表征 HCI 集群的性能和弹性

本文详细介绍了 TPCx - HCI 基准测试,用于衡量超融合基础设施(HCI)集群的性能、稳定性和扩展性。TPCx - HCI 扩展了 TPCx - V 的理念,通过 Tile 架构和弹性特性,全面评估硬件、虚拟化、存储和网络组件的表现。文章还通过多个实验场景分析了负载均衡、数据布局和重新同步策略对性能的影响,并提出了部署和优化 HCI 集群的建议。

sun99的博客 179

桥接模式/bridge模式/对象结构型

意图 将抽象部分与它的实现部分分离,使它们都可以独立的变化。 动机 当一个抽象类有多个实现时,通常用继承来协调它们。但是继承机制将抽象和实现固定,难以对抽象部分和实现部分独立地进行修改、扩充和重用。 此时通过一个桥接类,并且桥接类的操作都是抽象定义的,这就将抽象和实现进行了部分分离,它在抽象与实现之间起到了桥梁的作用,使他们可以独立变化。 java实现要素:桥接类+接口+接口实现(多种) 桥接类...

weixin_30680385的博客 75

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

类对象结构型模式之:Bridge(桥接模式)-- C语言例子

Bridge(桥接模式)-- 总结前言一、桥接模式总结1、模式意图2、参与者3、结构及效果4、适用性二、桥接模式C语言用例1、用例背景描述2、用例结构图3、C语言代码实现总结 前言         软软件设计模式(Design pattern),简称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。--来自百度百科

woody218的博客 1160

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Bridge(桥接)-对象结构型模式

1.意图 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 2.动机 在抽象类与它的实现之间起到桥梁作用,使它们可以独立地变化。 3.适用性 不希望在抽象和它的实现部分之间有一个固定的绑定关系。这种情况可能是因为,在程序运行时刻实现部分可以被选择或切换。 类的抽象以及它的实现部分都应该可以通过生成子类的方式加以扩充。这时桥接模式使你可以对不同的抽象接口和实现部...

weixin_30845171的博客 106

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Bridge(桥接)---对象结构型模式

在读本文之前,请先阅读如下文章 第一篇 http://linshiquan.iteye.com/blog/1036064 第二篇 http://www.jdon.com/designpatterns/bridge.htm 对于第一篇,我给出如下疑问? 1,“1.派生类是完全不同逻辑的类,四边形和圆 2.两种画法 意思是 画四边形会分别用到两种画法里面...

iteye_10284的博客 150

设计模式八:bridge(桥接)——对象结构型模式

bridge(桥接)——对象结构型模式 1.意图将抽象部分与它的实现部分分离,使他们都可以独立的变化 2.别名handle/body 3.动机当一个抽象可以有多个实现时,通常用继承来协调他们。抽象类定义对该抽象的接口,而具体的子类则用不同方式加以实现。但是此方法有时候不够灵活,继承机制将抽象部分和实现部分固定在一起,难以独立进行修改扩充和重用。bridge将抽象和实现分开,在中间...

weixin_30906185的博客 149

设计模式之类对象结构型 — BRIDGE (桥接)模式

意图 将抽象部分与他的实现部分分离,使他们都可以独立的变化 实现参考我的这篇文章(点这里),之前已经总结过了,就不重复了。 注意:之前仅仅是对代码依赖性的考虑,这次是在之前的基础上增加了控制不同实现的效果代码示例 注意:这是完整的示例代码 vs2013编译通过 //windows.h 文件 #pragma once#include <iostream> using namespa

小风code 506

C#面向对象设计模式纵横谈 学习笔记8 Bridge桥接(结构型模式)

桥接模式的动机假设我们有一个坦克游戏的开发,那么这个坦克有多种类型,并且这个游戏要支持多种平台的游戏事实上由于Tank类型的固有逻辑,使得Tank类型具有了两个变化的维度--一个变化的维度为"平台的变化",一个变化的维度为"型号的变化"。如何应对这种"多维度的变化"?如何利用面向对象技术来使得Tank类型可以轻松地沿着"平台"和"型号"两个方向变化,而不引入额外的复杂度?桥接模式的意图

Lawrence的专栏 1063

设计模式:可复用面向对象软件及基础:3-2 结构型模式:桥接模式(Bridge)

桥接模式bridge 概念 Bridge 模式又叫做桥接模式,是构造型的设计模式之一。Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任。它的主要特点是把抽象(abstraction)与行为实现(implementation)分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展。 角色和职责 Client Bridge模式的使用者 Abstraction 抽象类接口(接口或抽象类)维护对行为实现(I...

LIJIWEI0611的博客 263

设计模式——结构型

结构型模式,顾名思义讨论的是类和对象的结构,它采用继承机制来组合接口或实现(类结构型模式), 或者通过组合一些对象,从而实现新的功能(对象结构型模式)。   常见的结构型模式有七种: Adapter适配器模式Composite组合模式Facade外观模式Decorator装饰模式Bridge桥接模式Flyweight享元模式Proxy代理模式。   我们首先整体了解一下七种模式:

区块链领域填坑的java程序猿 1234

[导入]C#面向对象设计模式纵横谈(8):Bridge 桥接模式(结构型模式).zip(9.01 MB)

讲座内容: 本培训课程探讨GoF23之Bridge 桥接模式的意图、动因、原理、应用场景与C#语言实现,以及该模式在.NET框架程序设计中的具体应用。 课程讲师: 李建忠 上海祝成信息科技有限公司 高级培训讲师 MSDN特邀讲师 .NET技术专家,C++ CLI 专栏作家。南京邮电学院毕业,历任程序员,高级程序员,开发主管。现为上海祝成科技软件架构师,高级培训讲师。译著Microsoft ...

weixin_30646505的博客 110

《设计模式:可复用面向对象软件的基础》——结构型模式(笔记)

《设计模式:可复用面向对象软件的基础》 结构型模式 适配器、桥接、组合

weixin_46949627的博客 1474

结构型设计模式

结构型模式,顾名思义讨论的是类和对象的结构,它采用继承机制来组合接口或实现(类结构型模式),或者通过组合一些对象,从而实现新的功能(对象结构型模式)。结构型设计模式是从程序的结构上解决模块之间的耦合问题,分别是:Adapter适配器模式、Bridge桥接模式、Composite组合模式、Decorator装饰模式、Facade外观模式、Flyweight享元模式和Proxy代理模式。这些结构型模式

小邓(Java) 691
上一篇: 使用PMD分析来代码
下一篇: STATE(状态)—对象行为型模式
半个伪球迷
博客等级 码龄18年 2粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值