小谈设计模式(23)—桥接模式

2023-10-08 06:52

本文主要是介绍小谈设计模式(23)—桥接模式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

小谈设计模式(23)—桥接模式

  • 专栏介绍
    • 专栏地址
    • 专栏介绍
  • 桥接模式
    • 主要角色
      • 抽象部分
      • 实现部分
      • 分析
    • 核心思想
    • 应用场景
      • 1
      • 2
      • 3
    • 优缺点分析
      • 优点
        • 1
        • 2
        • 3
      • 缺点
        • 1
        • 2
    • 总结

专栏介绍

专栏地址

link

专栏介绍

主要对目前市面上常见的23种设计模式进行逐一分析和总结,希望有兴趣的小伙伴们可以看一下,会持续更新的。希望各位可以监督我,我们一起学习进步,加油,各位。
在这里插入图片描述

桥接模式

桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立变化。桥接模式通过将抽象和实现分离,可以实现抽象部分和实现部分的独立扩展,从而提高系统的灵活性

在这里插入图片描述

主要角色

抽象部分

定义了抽象的接口,包含了抽象方法和属性,它通常是一个抽象类或接口。

实现部分

定义了具体的实现,实现了抽象部分中的方法和属性,它也是一个抽象类或接口。

分析

通过将抽象部分和实现部分分离,使得它们可以独立变化。这样一来,如果需要增加新的抽象部分或实现部分,只需要扩展相应的抽象类或接口即可,而不需要修改原有的代码。
在这里插入图片描述

核心思想

将抽象和实现解耦,使得它们可以独立变化。通过桥接模式,可以实现抽象部分和实现部分的独立扩展,提高系统的灵活性和可扩展性。
在这里插入图片描述

应用场景

1

当一个类存在两个或多个独立变化的维度时,可以使用桥接模式将它们分离,使得它们可以独立变化。

2

当一个类需要在运行时选择不同的实现时,可以使用桥接模式。

3

当一个类需要通过组合而不是继承来实现不同的行为时,可以使用桥接模式。

在这里插入图片描述

优缺点分析

优点

1

分离抽象和实现,提高了系统的灵活性和可扩展性。

2

对于客户端来说,抽象部分和实现部分是透明的,可以独立变化,不影响客户端的使用。

3

可以通过组合来实现不同的行为,避免了继承的缺点。

缺点

1

增加了系统的复杂性,需要额外的抽象部分和实现部分。

2

对于小规模的系统,可能会增加代码量。
在这里插入图片描述

总结

桥接模式是一种将抽象和实现解耦的设计模式,通过将抽象部分和实现部分分离,实现了抽象部分和实现部分的独立变化,提高了系统的灵活性和可扩展性。

这篇关于小谈设计模式(23)—桥接模式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/163492

相关文章

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

SpringBoot如何通过Map实现策略模式

《SpringBoot如何通过Map实现策略模式》策略模式是一种行为设计模式,它允许在运行时选择算法的行为,在Spring框架中,我们可以利用@Resource注解和Map集合来优雅地实现策略模式,这... 目录前言底层机制解析Spring的集合类型自动装配@Resource注解的行为实现原理使用直接使用M

C#原型模式之如何通过克隆对象来优化创建过程

《C#原型模式之如何通过克隆对象来优化创建过程》原型模式是一种创建型设计模式,通过克隆现有对象来创建新对象,避免重复的创建成本和复杂的初始化过程,它适用于对象创建过程复杂、需要大量相似对象或避免重复初... 目录什么是原型模式?原型模式的工作原理C#中如何实现原型模式?1. 定义原型接口2. 实现原型接口3

大数据spark3.5安装部署之local模式详解

《大数据spark3.5安装部署之local模式详解》本文介绍了如何在本地模式下安装和配置Spark,并展示了如何使用SparkShell进行基本的数据处理操作,同时,还介绍了如何通过Spark-su... 目录下载上传解压配置jdk解压配置环境变量启动查看交互操作命令行提交应用spark,一个数据处理框架

Java实现状态模式的示例代码

《Java实现状态模式的示例代码》状态模式是一种行为型设计模式,允许对象根据其内部状态改变行为,本文主要介绍了Java实现状态模式的示例代码,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来... 目录一、简介1、定义2、状态模式的结构二、Java实现案例1、电灯开关状态案例2、番茄工作法状态案例

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

模版方法模式template method

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/template-method 超类中定义了一个算法的框架, 允许子类在不修改结构的情况下重写算法的特定步骤。 上层接口有默认实现的方法和子类需要自己实现的方法

【iOS】MVC模式

MVC模式 MVC模式MVC模式demo MVC模式 MVC模式全称为model(模型)view(视图)controller(控制器),他分为三个不同的层分别负责不同的职责。 View:该层用于存放视图,该层中我们可以对页面及控件进行布局。Model:模型一般都拥有很好的可复用性,在该层中,我们可以统一管理一些数据。Controlller:该层充当一个CPU的功能,即该应用程序