桥接模式

深入解析桥接模式、NAT模式与仅主机模式 在虚拟化技术的广泛应用中,虚拟机网络配置是不可忽视的重要部分。无论是个人开发环境,还是企业级虚拟化平台,网络配置直接影响虚拟机的联网方式和性能。常见的网络模式包括**桥接模式**、**NAT模式**和**仅主机模式**。本文将从概念、原理、配置方法及适用场景等方面详细解析这三种网络模式,帮助开发者和运维工程师更好地理解和选择合适的网络配置。 阅读详情

一、桥接模式的基本介绍

      桥接模式是指将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。桥接模式基于类的最小设计原则,通过封装、聚合及继承等行为让不同的类承担不同的职责。它主要特点是把抽象(abstraction)与行为实现(implemention)分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展。

二、桥接模式原理

桥接模式原理类图如下所示:

原理类图说明:

1)Client类:桥接模式的调用者

2)抽象类:维护了implementor,即它的实现类ConcreteImplementorA...二者是聚合关系,抽象类充当桥接类

3)RefinedAbstraction:是Abstraction抽象类的子类

4)Implementor:行为实现类的接口

5)ConcreteImplementorA/ConcreteImplementorB:行为的具体实现类

6)从UML图可以得知,这里的抽象类和接口是聚合的关系,其实是调用和被调用关系

三、桥接模式例子

使用桥接模式完成对不同手机类型的不同品牌实现操作编程。类图如下所示:

代码如下所示:

创建Brand接口以及子类:

public interface Brand{

    void open();

    void close();

    void call();
}
public class XiaoMi implements Brand{

    public void open(){
        System.out.println("小米手机开机...");
    }

    public void close(){
        System.out.println("小米手机关机...");
    }

    public void call(){
        System.out.println("小米手机打电话...");
    }
}
public class Vivo implements Brand{

    public void open(){
        System.out.println("Vivo手机开机...");
    }

    public void close(){
        System.out.println("Vivo手机关机...");
    }

    public void call(){
        System.out.println("Vivo手机打电话...");
    }
}

创建抽象类Brand及其子类:

public abstract class Phone{

    private Brand brand;

    public Phone(Brand brand){
        this.brand = brand;
    }

    protected void open(){
        brand.open();
    }

    protected void close(){
        brand.close();
    }

    protected void call(){
        brand.call();
    }
}
//折叠样式手机,继承抽象类Phone
public class FoldedPhone extends Phone{

    public FildedPhone(Brand brand){
        super(brand);
    }

    public void open(){
        super.open();
        System.out.println("折叠样式手机");
    }

    public void close(){
        super.close();
        System.out.println("折叠样式手机");
    }

    public void call(){
        super.call();
        System.out.println("折叠样式手机");
    }
}
public class UpRightPhone extends Phone{

    public UpRightPhone(Brand brand){
        super(brand);
    }

    public void open(){
        super.open();
        System.out.println("直立样式手机");
    }

    public void close(){
        super.close();
        System.out.println("直立样式手机");
    }

    public void call(){
        super.call();
        System.out.println("直立样式手机");
    }
}

创建Client类:

public class Client{

    public static void main(String[] args){
        Phone phone = new FlodedPhone(new XiaoMi());
        phone.open();
        phone.call();
        phone.close();

        System.out.println("------------------------");

        Phone phone2 = new FlodedPhone(new Vivo());
        phone2.open();
        phone2.call();
        phone2.close();

        System.out.println("------------------------");

        Phone phone3 = new UpRightPhone(new XiaoMi());
        phone3.open();
        phone3.call();
        phone3.close();

        System.out.println("------------------------");

        Phone phone4 = new UpRightPhone(new Vivo());
        phone4.open();
        phone4.call();
        phone4.close();

        System.out.println("------------------------");
    }

}

四、桥接模式的注意事项和细节

1)实现了抽象和实现部分的分离,从而极大的提供了系统的灵活性,让抽象部分和实现部分独立开来,这有助于系统进行分层设计,从而产生更好的结构化系统

2)对于系统的高层部分,只需要知道抽象部分和实现部分的接口就可以了,其他的部分由具体业务来完成

3)桥接模式替代多层继承方案,可以减少子类的个数,降低系统的管理和维护成本

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

5)桥接模式要求正确识别出系统中两个独立变化的纬度,因此其使用范围有一定的局限性,即需要有这样的应用场景

五、应用场景

1)对于那些不希望使用继承或因为多层次继承导致系统类的个数急剧增加的系统,桥接模式很适用

2)常见的应用场景:①JDBC驱动程序,②银行转账系统,③转账分类:网上转账、柜台转账、AMT转账,④转账用户类型:普通用户、银卡用户、金卡用户,⑤消息管理,⑥消息类型:即时消息、延时消息,⑦消息分类:手机短信、邮件消息、QQ消息

《网络编程实战系列》(17)网络桥接模式 桥接模式通过将多个网络接口连接在一起,形成一个逻辑上统一的网络,为网络设备之间的通信提供了一种简洁而有效的解决方案。它广泛应用于网络扩展、虚拟化环境、无线网络等场景中。尽管桥接模式具有透明性和兼容性,但在大型网络或复杂环境中,需要谨慎配置,以避免潜在的广播风暴和安全问题。 阅读详情

相关推荐

SageMath下载与安装

SageMath的下载与安装

旺旺的碎冰冰~的博客 7497

JSBridge桥接原理

一、前言 如今的互联网时代也称移动互联网时代,基本上每个人每天都会花费大量时间在移动设备上,早期的移动端应用大都使用原生开发(android,ios),而现在的移动开发技术选型上基本都是混合开发(Hybrid),混合开发是一种开发模式,指使用多种开发模型开发App,通常会涉及到两大类技术:原生Native、Web H5 原生技术主要指iOS(Objective C)、Android(Java),原生开发效率较低,开发完成需要重新打包整个App,发布依赖用户的更新,性能较高功能覆盖率更高,发布流程较为

feilzhang的博客 1855

Kali Linux下John the Ripper实战:从识别yescrypt哈希到破解zip压缩包(保姆级避坑指南)

本文详细介绍了在Kali Linux中使用John the Ripper工具从识别yescrypt哈希到破解zip压缩包的全过程。针对常见的'No password hashes loaded'报错,提供了两种解决方案,并扩展讲解了哈希识别、zip文件破解及性能优化技巧,是安全测试人员的实用指南。

weixin_29323365的博客 236

【设计模式系列16】桥接模式原理及示例分析

桥接模式原理及示例分析前言什么是桥接模式桥接模式示例桥接模式角色分类桥接模式应用场景桥接模式优缺点总结 前言 本文主要介绍桥接模式的原理,并会结合示例进行分析。桥接模式其实和组合有点相似,桥接模式也是通过组合来实现的,但是桥接模式和组合模式的侧重点不一样,接下来就让我们一起来看看桥接模式。 什么是桥接模式 桥接模式(Bridge Pattern)也称之为桥梁模式,接口(Interface)模式或者柄体(Handle and Body)模式。 桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立的变化。桥

zwx900102的博客 3397

制作一个有趣的涂鸦物联网小项目(涂鸦模组SDK开发 CBU BK7231N WiFi+蓝牙模组 HSV彩色控制)

实现的功能: l APP控制月球灯 l 本地月球灯控制 l APP控制“大白”颜色,实现各种颜色变身 l 门状态传感器状态APP显示 l 网络状态指示灯,连接服务器长亮,断开后闪烁 l 配网按键 l 云端定时功能 l 云端报警提示功能 l 云端历史数据查看 l 远程升级介绍 视频演示:【开源】制作一个有趣的涂鸦物联网小项目(涂鸦模组SDK开发 CBU BK7231N WiFi+蓝牙模组 HSV彩色控制)_哔哩哔哩_bilibili 一、界面展示 ...

东小东博客 7115

Claude code-review 插件深度解析:AI 驱动的智能代码审查系统

Claude Code Review 插件深度解析:AI 驱动的智能代码审查系统 该插件通过多 Agent 并行工作方式自动审查 PR,采用置信度评分机制(80+分保留)过滤误报,确保高质量反馈。核心功能包括: 5个专业化 Agent 并行审查(规范合规性、bug检测、历史分析等) 8步工作流程:从资格检查到 GitHub 评论发布 创新性置信度评分系统(0-100分),严格过滤7类误报 结合 CLAUDE.md 规范和历史 PR 评论实现一致性审查 技术亮点: 多 Agent 架构(Haiku/Sonne

虚心若愚 2264

网络基础(一)桥接网络

网络基础知识。

小獣专栏 5789

工业组态软件Intouch(单机版)入门{第一篇}

通俗来讲Intouch就是一个能将PLC里的信号显示在画面上的软件。

weixin_41571357的博客 1万+

桥接模式(BridgePattern)

将抽象部分与实现部分分离,使它们都可以独立的变化。在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活。实现系统可能有多个角度分类,每一种角度都可能变化。把这种多角度分类分离出来,让它们独立变化,减少它们之间耦合。抽象类依赖实现类。比如猪八戒从天蓬元帅转世投胎到猪,转世投胎的机制将尘世划分为两个等级,即:灵魂和肉体,前者相当于抽象化,后者相当于实现化。生灵通过功能的委派,调用肉体对象的功能,使得生灵可以动态地选择。

u013115157的博客 898

增距镜或中继镜选型

增距镜光路图

camerall 5247

【JAVA设计模式】之桥接模式(BridgePattern)

桥接模式的作用是将两样东西连接起来,比如桥梁把河的两岸连接起来 桥接模式把“类的功能层次结构”和“类的实现层次结构”连接起来 类的层次结构 类的功能层次:父类通过定义抽象方法来定义接口API 类的实现层次:子类通过实现具体方法来实现接口API 示例程序 相关类一览表 类的层次 类名 描述 功能层 Express 快递寄件 功能层 EnhanceExpress (寄件)增加代收功能 实现层 ICompany 快递公司 实现层

兵临城下的博客 358

Python爬取马蜂窝旅游攻略详细实战指南

马蜂窝是国内非常知名的旅游攻略网站,包含了大量的景点介绍、旅行攻略、游记等信息。爬取马蜂窝的数据对于旅游数据分析、旅游产品推荐等有重要价值。但由于马蜂窝对爬虫有一定的反爬措施,并且页面中大量内容通过JavaScript动态加载,爬虫难度相对较大。本篇博客将带你从零开始,使用Python和相关爬虫技术,逐步实现对马蜂窝旅游攻略内容的高效爬取。并结合实战经验,分析反爬策略,提供科学合理的绕过方案。本文介绍了马蜂窝攻略的结构和抓取难点。演示了静态+动态内容的混合爬取技术。介绍了多线程和异步加速方法。

2201_76125261的博客 588

[Unity 设计模式]桥接模式(BridgePattern)

1.前言 继上一讲IOC模式的基础上继续本讲桥接模式,笔者感觉桥接模式是23种设计模式中桥接模式是最好用但也是最难理解的设计模式之一,23中设计模式就好武侠剧中一本武功秘籍,我们在工作过程中想要熟练运用其中的每一种设计模式就好比跟高手过招想要能运用好武侠秘籍中的每一招每一式,并且能随着对手出招的不同我们能随机应变对应的招数,这就要求我们对每一种设计模式都理解的非常深刻才能运用自如,打出组合拳的效

bmw601055的博客 521

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

设计模式之桥接模式BridgePattern(十二)

桥接模式(bridge pattern) 的定义是:将抽象部分与它的实现部分分离,使它们都可以独立地变化。桥接模式用一种巧妙的方式处理多层继承存在的问题,用抽象关联来取代传统的多层继承,将类之间的静态继承关系转变为动态的组合关系,使得系统更加灵活,并易于扩展,有效的控制了系统中类的个数 (避免了继承层次的指数级爆炸)。

徐泗空的博客 837

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

详解设计模式:桥接模式

桥接模式(Bridge Pattern)也称为桥梁模式、接口模式或者柄体模式,有点像适配器模式,也是 GoF 的 23 种设计模式中的一种结构型设计模式。 桥接模式 是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。 本篇内容包括:关于桥接模式、桥接模式实现 Demo

栗筝i的博客 4017

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

桥接模式(BridgePattern)

基本介绍:    桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式示例代码:package org.brando; /** * * 类说明: 测试类 * @author Brando 2018年3月29日 下午2:03:59 */ public class Launc...

BrandoLv 337

设计模式桥接模式(BridgePattern)

核心模块:Abstracttion抽象类、RefinedAbstraction扩充抽象类、Implementor实现类接口、ConcreteImplementor具体实现类 所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git 使用场景:多维度耦合的情况,不希望用继承的情况; 优点:减少了类的数量和和代码量,避免

didiao11300的专栏 299

JAVA设计模式之桥接模式

转自http://www.kongzid.com/archives/design9,桥接模式(Bridge Pattern),又称为柄体(Handle and Body)模式或接口(Interface)模式。将抽象部分与它的实现分离,并不是说让抽象类与其派生类分离,而是用抽象类和它的派生类用来实现自己的对象。(将抽象化(Abstraction)与实现化Implementation)脱耦,使得二者可以独立地变化) 从众多的事物中抽取出共同的、本质...

孔子说 966

桥接模式 BridgePattern

抽象部分using System; using System.Collections.Generic; using System.Text; namespace BridgePattern { public class Worker { private string _Age; private string _Name;

GhostHouse 1702

设计模式之桥接模式BridgePattern

设计模式之桥接模式BridgePattern 代码下载 BridgePattern 1.概念 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 这个概念有点抽象,桥接顾名思义,通过搭桥的方式让本不想关联的对象互相调用。 可以联想牛郎织女鹊桥会。 2.类图 1). IDAL 与 IBLL两个类相互依赖,具体的实现DAL1(或DAL2)与BLL实现相互独立互不影响。 2

赵玉的专栏 3204

桥接模式介绍

桥接模式属于结构型模式,它用一种巧妙的方式处理多层继承存在的问题,用抽象关联来取代传统的多层继承,将类之间的静态继承关系转变为动态的组合关系,使得系统更加灵活,并易于扩展,有效的控制了系统中类的个数 (避免了继承层次的指数级爆炸).。今天我们就来介绍下桥接模式。

qq_25409421的博客 2186
上一篇: 适配器模式
下一篇: 装饰者模式
未曾路过
博客等级 码龄10年 28粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值