设计模式学习笔记——结构型模式

Kalibr标定避坑指南:如何用AprilGrid板快速完成双目IMU标定 本文详细介绍了使用AprilGrid板进行Kalibr双目IMU联合标定的实战技巧,包括标定工具选型、数据采集优化、标定流程及结果验证。通过AprilGrid板的唯一标识性和抗遮挡优势,结合IMU静止标定和运动激励设计,显著提升标定精度。文章还提供了常见报错处理和高级优化技巧,帮助开发者高效完成传感器标定。 阅读详情

适配器模式 Adapter

适用场景

  1. 希望使用某个类, 但是其接口与其他代码不兼容时, 可以使用适配器类。

UML

结构一:
适配器实现了其中一个对象的接口, 并对另一个对象进行封装。

«interface»
ClientInterface
+method(data)
Adapter
-adaptee Service
+method(date)
Service
+serviceMethod(specialData)
Client

结构二:
有些编程语言支持多继承,比如C++。适配器同时继承两个对象的接口,适配功能在重写的方法中完成。 最后生成的适配器可替代已有的客户端类进行使用。
eg:

Adapter::method() {
	specialData = convertToServiceFormat(data);
	return serviceMethod(specialData);
}
ExistingClass
+method(data)
Adapter
-adaptee Service
+method(date)
Service
+serviceMethod(specialData)
Client

通过上面的分析可以看出来,适配器模式,是将某个对象封装到Adapter的内部,然后为被封装对象提供不同的接口。

桥接模式 Bridge

适用场景

  1. 如果你希望在几个独立维度上扩展一个类, 可使用该模式。
  2. 如果你想要拆分或重组一个具有多重功能的庞杂类 (例如能与多个数据库服务器进行交互的类), 可以使用桥接模式。
  3. 如果你需要在运行时切换不同实现方法, 可使用桥接模式。
    案例:
    一个Shape类,派生出了Circle类和Square类。你希望对这样的类层次结构进行扩展以使其包含颜色, 所以你打算创建名为 红色Red和 蓝色Blue的形状子类。由于你已有两个子类, 所以总共需要创建四个类才能覆盖所有组合, 那就得派生出红色Circle+红色Square+蓝色Circle+蓝色Square。如果后续你想新增一个三角形形状,你需要增加两个子类,即红色三角形和蓝色三角形,再之后如果你想增加一个颜色,你需要增加三个子类。子类的个数会呈指数增长。

UML

Client
Abstraction
-i Implemetation
+feature1()
+feature2()
«interface»
Implementation
+method1()
+method2()
+method3()
RefinedAbstraction
+featureN()
ConcreteImplementation
  1. 抽象部分Abstraction 提供了高层控制逻辑,实际工作依赖于底层的实现Implementation。比如GUI程序的底层实际是调用了操作系统的API,此处的抽象部分就相当于GUI程序的主逻辑,底层的实现部分就相当于操作系统的API。
Abstraction::feature1(){
	...
	i.method1();
	...
}
Abstraction::feature2(){
	...
	i.method2();
	i.method3();
}
  1. 实现部分Implementation声明了通用的接口,用于为高层提供功能。
  2. 具体实现Concrete Implementation里包括了特定平台的代码
  3. 精确抽象Refined Abstraction提供控制逻辑的变体(featureN),与父类一样,也是依赖实现的接口与实现交互。
  4. 客户端Client一般负责将某个抽象和某个实现连接起来,然后调用抽象的方法。abstraction.feature1();
    像这样将高层抽象和具体实现分离开,两个部分可以分别演进而不会对另一方产生影响。至于为什么叫Bridge模式,大概主要是因为二者之间通过聚合关系关联到一起,这个聚合关系,就像是二者沟通的桥梁。

组合模式 Composite

将对象集合封装到Composite内部,为单元素和集合元素提供相同的接口,便于处理树形的逻辑结构。

装饰模式 Decorator

将对象封装到Decorator内部,为对象提供一个增强的接口。

外观模式 Facade

将子系统细节封装到Facade内部,为子系统提供一个简化的接口。

享元模式 Flyweight

将对象中不易变的大成员提取出来单独存储,而在对象内部只存储一个指向大成员的指针或者引用,以达到缩减内存占用的目的。

代理模式 Proxy

将对象封装到Proxy内部,为对象提供一个和对象相同的接口。

统一大型语言模型和知识图谱:路线图 大型语言模型(LLM),如ChatGPT和GPT4,由于其涌现能力和泛化性,正在自然语言处理和人工智能领域掀起新的浪潮。然而,LLM是黑箱模型,通常无法捕捉和获取事实知识。相反,知识图谱(KGs),例如维基百科和华普,是显式存储丰富事实知识的结构化知识模型。KGs可以通过为推理和可解释性提供外部知识来增强LLM。同时,KGs很难从本质上构建和演化,这对KGs中现有的生成新事实和表示未知知识的方法提出了挑战。因此,将LLM和KGs统一在一起并同时利用它们的优势是相辅相成的。 阅读详情

相关推荐

【RF】Receiver Function接收函数:从理论到实践的深度解析

本文深入解析地震学中的接收函数(Receiver Function, RF)技术,从理论原理到实践操作。文章将RF比作地球的“听诊器”,详细阐述了其通过反褶积剥离震源影响、揭示地下结构(如莫霍面)的核心机制,并提供了使用Python和rf库进行数据处理、计算、动校正与叠加的完整实战流程,同时探讨了其应用、局限性与常见问题的解决方案。

Jerry的专栏 121

学习笔记-设计模式-结构型设计模式

结构型设计模式

weixin_43228670的博客 1122

UE5新手必看:如何用蓝图系统快速打造赛车游戏(含Chaos Physics配置)

本文为UE5新手提供使用蓝图系统快速打造赛车游戏的完整指南,涵盖Chaos Physics配置、载具蓝图架构设计、控制逻辑实现等关键步骤。通过详细的实战案例和优化技巧,帮助开发者高效构建具备专业物理反馈的赛车游戏原型。

weixin_29001327的博客 387

设计模式学习笔记三:结构型模式(Structural Pattern)

声明:学习内容均来自《设计模式的艺术》这本书。

itman1010的博客 1658

STM32H743实战(三)-- 时钟系统配置

本文详细讲解了STM32H743时钟系统的配置方法,重点解析了为何选择400MHz而非理论极限480MHz作为稳定运行的主频。通过STM32CubeIDE环境,手把手指导如何从外部晶振配置、电源电压设置到PLL锁相环参数调整,最终实现稳定可靠的400MHz系统时钟,并提供了代码验证与常见问题排查指南。

weixin_29164185的博客 368

ESP32编译卡在‘Cannot establish a connection to the component registry’?别急着重装,先试试这两个国内镜像配置

本文详细解析了ESP32编译过程中常见的‘Cannot establish a connection to the component registry’报错问题,并提供了国内镜像源的配置方案。通过对比Gitee、清华大学、阿里云和中科大等镜像源的性能,帮助开发者快速解决网络连接问题,提升编译效率。文章还包含手把手的配置教程和进阶技巧,适用于ESP-IDF开发环境的优化。

weixin_34088048的博客 341

设计模式学习笔记---结构型模式

设计模式 结构型模型 ​ 描述如何将类或对象按照需求组成更大的结构 分类 类结构型模式:采用继承来组织接口和类 对象结构型模式:采用组合或聚合来组合对象 组合关系或聚合关系比继承关系耦合度更低,所以对象结构型灵活性更好 一、代理模式 定义 ​ 为某对象提供一个代理来控制对该对象的访问-----类似中介 目的 保护目标对象 增强目标对象 优点 代理对象可以作为中介并保护目标对象 代理对象可以扩展目标对象的功能 将目标对象与访问对象分离,减低系统耦合,增加程序的可扩展性 缺点 系统中类的数量增加

Wang_0202的博客 308

CONN工具箱分析fmri数据笔记1

前言一、安装二、预处理三、去噪 前言 CONN:functional connectivity toolbox,是基于MATLAB和SPM的一个对功能磁共振数据进行分析的一个工具箱。可以进行以下分析: Seed-based correlations (SBC), ROI-to-ROI correlations, graph analyses, Independent component analyses(group-ICA), Masked (ICA) Amplitude of Low-Frequency.

weixin_52073820的博客 6586

设计模式学习笔记-结构型模式

设计模式golang-结构型模式 一、适配器模式 1.作用 将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 2.举例 已经存在的接口 //不可充电电池使用接口 type NonRechargeableBattery interface { Use() } 客户希望的接口 //可充电电池使用接口 type RechargeableBattery interface { Use() Charge() } 已经存在的对象和实现方

Konan96的博客 199

AutoJs调用DeepSeek大模型接口实战教程 AutoJs接入DeepSeek、 DeepSeek API调用 、 手机脚本接入大模型

通过这篇文章,我们用 AutoJs 成功接入了 DeepSeek Chat API。使用发送请求在 Header 里正确携带 API Key从里拿到最终返回结果这样一来,你就可以在 AutoJs 里实现一个智能助手脚本,甚至做更复杂的 AI 自动化工具。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 468

华为OD机考双机位C卷 - AI处理器组合 (Java & Python & JS & GO & C++ & C)

> 2026华为OD机试双机位C卷 - 华为OD上机考试双机位C卷 华为OD机试双机位C卷真题目录点击查看: [【全网首发】2026华为OD机位C卷 机考真题题库含考点说明以及在线OJ(OD上机考试双机位C卷)](https://blog.youkuaiyun.com/banxia_frontend/article/details/155503868)

算法大师! 233

设计模式-结构型 学习笔记

适配器模式(Adapter Pattern)是一种结构性设计模式,用于将一个类的接口转换成客户端所期望的另一个接口。它允许不兼容接口的类能够一起工作,促使不同接口之间的协同合作。

mming520的博客 132

电路布局中近场耦合问题

开关电源EMC设计中,传导骚扰超标往往源于空间耦合而非参数问题。某案例中,DC-DC模块的非屏蔽电感磁场泄漏耦合到邻近X电容,导致0.5MHz频点超标。通过将X电容移至PCB底层、优化布局保持15mm间距后,问题完全解决。实践证明:EMC设计需注重空间隔离,优先采用屏蔽电感,滤波元件应远离高频磁场区,布局优化比参数调整更有效。这提示工程师需将电磁兼容视为空间问题而不仅是电气问题。

硬核科技 375

设计模式学习笔记(3)——结构型设计模式

一:装饰者模式 1. 定义 又名包装模式。装饰模式以对客户端透明的方式,把经常改变的模块作为装饰,动态扩展对象的功能,是继承关系的一个替代方案。 透明装饰者模式:具体组件和装饰器的接口与抽象组件的接口完全一致,属于同一超类型(具体组件不再扩展其他功能) 半透明装饰者模式:具体组件和装饰器的接口与抽象组件的接口不一致(具体组件需要扩展其他功能) 2. 使用 基本组件 扩展组件:继承基本组件(保...

小浩的博客 247

数学建模模型总结

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

计算机控制技术及应用

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

设计模式学习笔记(十二)结构型模式

将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,适配器模式分为类结构型模式(继承)和对象结构型模式(组合)两种,前者(继承)类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。别名也可以是Wrapper,包装器。将抽象与实现解耦,使两者都可以独立变化。在现实生活中,某些类具有两个或多个维度的变化,如图形既可按形状分,又可按颜色分。如何设计类似于 Photoshop 这样的软件,能画不同形状和不同颜色的图形呢?

喜欢历史的码农 274

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

结构型设计模式学习笔记

    结构型设计模式关注于如何将类或对象组合成更大更复杂的结构,以简化设计。1,外观模式    外观模式为一组复杂的子系统接口提供一个更高级的统一接口,通过这个借口来对子系统接口的访问更容易。在JavaScript中有时也会用于对底层结构兼容性做统一封装来简化用户使用。1.1 添加一个点击事件    使用如下的代码添加一个点击事件时造成的问题.document.onclick = functio...

小白菜的博客 263

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

设计模式学习笔记(十五)——结构型模式总结

设计模式学习笔记(十五)——结构型模式总结 结构型设计模式是从程序的结构上解决模块之间的耦合问题(好像是句废话),GoF23种设计模式中结构型设计模式有7种,分别是:Adapter适配器模式、Bridge桥接模式、Composite组合模式、Decorator装饰模式、Facade外观模式、Flyweight享元模式和Proxy代理模式。下面分别总结一下这几种模式:

zhy05的专栏 730

学习笔记-Java设计模式-结构型模式2

Java设计原则&&模式学习笔记 说明 近期扫地生决定整合一下年初学习的设计模式,一来用于复习巩固,二来也希望可以把自己的整合与有需要的同学共勉。 扫地生在学习的过程中主要参考的是公众号“一角钱技术”的相关推文,同时也参考了下列几篇文章。对这些作者扫地生表示衷心的感谢。 参考文章1-Java设计原则 参考文章2-Java设计模式总结 参考文章3-23种设计模式速记 4、结构型模式...

dglx_的博客 256

设计模式——结构型模式之桥接模式

本人设计模式学习笔记:结构型模式之桥接模式

RichelDu8的博客 295

[转]设计模式学习笔记——结构型模式总结

结构型设计模式是从程序的结构上解决模块之间的耦合问题(好像是句废话),GoF23种设计模式中结构型设计模式有7种,分别是:Adapter适配器模式、Bridge桥接模式、Composite组合模式、Decorator装饰模式、Facade外观模式、Flyweight享元模式和Proxy代理模式。下面分别总结一下这几种模式: 设计模式 GoF的描述 我的理解

luojianbinfen的专栏 305

学习笔记:7种结构型设计模式简单对比

这7种结构型设计模式是下面7种: Adapter 适配器模式 Bridge 桥接模式 Composite 组合模式 Decorator 装饰模式 Facade 外观模式 Flyweight 享元模式 Proxy 代理模式 对比: Adapter模式主要应用于“希望复用一些现存的类,但是接口又与复用环境要求不一致的情况” ,在遗留代码复用、类库迁移等方面非常有...

weixin_34223655的博客 137

设计模式——结构型模式之享元模式

本人设计模式学习笔记:结构型模式之享元模式

RichelDu8的博客 287

设计模式学习笔记十三——结构型模式总结

学习创建型模式,逐渐领会了面向接口编程的妙处,实现依赖抽象的原则。学习结构型模式,使我看到了使用对象组合带来的好处,相对继承,能带来很多优点,这在Bridge和Decorator模式中尤其明显。其实,结构型模式在项目中随处可见,以前的项目中不自觉就会用到,虽然以前不知道那就是模式,当然,很多时候,我并没有对那些对象进行抽象和提炼,仍然是强耦合。 型模式都有点类似,无非...

weixin_30535565的博客 125

学习笔记-Java设计模式-结构型模式1

Java设计原则&&模式学习笔记 说明 近期扫地生决定整合一下年初学习的设计模式,一来用于复习巩固,二来也希望可以把自己的整合与有需要的同学共勉。 扫地生在学习的过程中主要参考的是公众号“一角钱技术”的相关推文,同时也参考了下列几篇文章。对这些作者扫地生表示衷心的感谢。 参考文章1-Java设计原则 参考文章2-Java设计模式总结 参考文章3-23种设计模式速记 4、结构型模式...

dglx_的博客 353

设计模式——结构型模式之代理模式

本人设计模式学习笔记:结构型模式之代理模式

RichelDu8的博客 298

学习笔记-Java设计模式-结构型模式3

Java设计原则&&模式学习笔记 说明 近期扫地生决定整合一下年初学习的设计模式,一来用于复习巩固,二来也希望可以把自己的整合与有需要的同学共勉。 扫地生在学习的过程中主要参考的是公众号“一角钱技术”的相关推文,同时也参考了下列几篇文章。对这些作者扫地生表示衷心的感谢。 参考文章1-Java设计原则 参考文章2-Java设计模式总结 参考文章3-23种设计模式速记 4、结构型模式...

dglx_的博客 314
上一篇: STL-ch2-空间配置器
dummy_bot
博客等级 码龄10年 35粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值