行为型设计模式-Visitor vs Observer

【软考设计模式总览】GoF 23 种设计模式全景图:分类、考频与备考路线图 阅读详情

Observer 观察者模式

  • 被动观察(被观察的对象为主动,主动选择在哪些阶段,通知到哪些观察者),可以有多个观察者,甚至多组,每组不同行为,对象发生变更时,有选择性地通知一组观察者进行行动。

  • 通知即一种触发。

  • 使用范例:Spring的事件监听器

  • 每个观察者都要持有对象,对象要持有所有的观察者。互相依赖最好是固定的,动态添加观察者的情况不要出现,否则采用发布-订阅更科学(有一个中间的存储,如RocketMQ的消息存储)。

Visitor 访问者模式

  • 主动访问(访问者为主动,主动访问自己想要访问的那些部分,完全自定义,被访问对象只要负责接待访问者即可,就像是动物园接待游客来访一样)

  • 容易扩展更多的访问者,只要负责接待即可。

  • 被访问者自身进行了升级,比如升级了设施,更换了布局,此时所有的游客都不能按照老套路来访问了,也都要跟着升级。

  • 访问者可以理解为分离了一种关注点。

  • 使用范例:JDK NIO FileVisitor、Spring IoC BeanDefinitionVisitor

主要参考:

https://blog.youkuaiyun.com/qq_43170213/article/details/120390216

把“思考”塞进 1 KB:我用纯 C 语言给单片机手搓了一个微型 Transformer 推理引擎 摘要:本文探讨了在64KB SRAM的MCU(如STM32H743)上部署精简Transformer模型的技术方案。通过将6层Transformer压缩至1层(隐藏维度128)、4-bit KV-Cache量化等优化手段,实现了240KB Flash占用和59KB RAM峰值,推理延迟184ms(400MHz Cortex-M7),准确率96.1%。关键创新包括:手工优化矩阵乘(CMSIS-NN)、查表法Softmax/LayerNorm、权重按Tile重排提升Cache命中率(60%→94%)。 阅读详情

相关推荐

Topas——基于Geant4的放射治疗蒙特卡罗算法模拟工具

本文内容参考Joseph Perl 的线上会议,视频详情可见于,该视频会议内容主要介绍Topas功能、软件架构、工作流程、参数设定、物理模型、具体案例等,对TOPAS的基本入门使用方法以及使用规定作出阐述。

fy方的博客 7605

设计模式 – 四大类型

这类模式包括策略(Strategy)、模板方法(Template Method)、观察者(Observer)、迭代器(Iterator)、责任链(Chain of Responsibility)、命令(Command)、备忘录(Memento)、状态(State)、访问者(Visitor)等。这些模式能够帮助设计者在不修改现有类的基础上,达到重用和扩展的目的。创建型模式关注于对象的创建过程,它们提供了一种在创建对象的同时隐藏创建逻辑的方式,从而使得程序的结构更加清晰,也更易于维护和拓展。

qq_33240556的博客 527

PID参数自整定实战解析:从继电反馈到智能调节的完整实现

本文深入解析PID参数自整定的实战应用,从继电反馈原理到智能调节算法的完整实现。通过详细讲解振荡波形特征提取、参数计算的工程化改进及工业场景调试技巧,帮助工程师快速掌握PID自整定技术,提升控制系统性能。特别针对嵌入式系统优化和噪声环境下的稳定策略提供了实用解决方案。

weixin_28731223的博客 461

访问者模式(Visitor Pattern)和观察者模式(Observer Pattern)的区别与使用方法

观察者 访问者 区别

Yuzubansui的博客 544

豆包大模型API调用两种方法

ps: 因为是自用,所以这里图方便采用硬编码密钥的形式;如果有需求/安全风险,建议参考官方教程设置ARK_API_KEY环境变量的方式。坏处是:看别人的教程走了一大圈弯路hh;基础调用的话方法一就可以满足了,也比较方便快捷,容易上手。将 <Model> 替换为 Endpoint ID即可。创建就按照提示填写信息就行,需要实名认证,有免费额度。绿框框里就是Endpoint ID。

kkkkkkkkkasey的博客 1万+

【open judge】【程设】魔兽世界三开战!

#程设 魔兽世界三---开战!--------原以为会很容易ac,没想到写了好久,看来自己的水平还是亟待提高啊!有几个比较有趣的点:1. typeid(#include&lt;typeinfo&gt;)还是比较好用的,特别是本题当战士为wolf,iceman, dragon, ninja时有特殊技能,那么用typeid判断一下就很方便了。2. 对于这种输出很复杂的问题,往往通过使用文件的输入输出再...

weixin_40841416的博客 6073

设计模式之observer and visitor

很长时间一直对observer(观察者)与visitor(访问者)有些分不清晰。 今天有时间进行一下梳理: 1.observer模式 这基本就是一个通知模式,当被观察者发生改变时,通知所有监听此变化的观察者。 MVC、消息队列等等设计有此思想。 在被观察者中,都会存储一个及以上的的观察者名单(映射) 2.visitor模式 访问者模式,主要的解决问题是,通过多态的方...

weixin_30522095的博客 143

【BAT32G113-仿真器及脱机烧录器教程-A3-2024/9/19】

提示:此壁纸收集于互联网,如有侵权,请联系作者!今日下班,闲来无事,就与生活中在乎的人闲日常,互相彼此增进一些友谊或爱意情愫!在座的朋友看到这里,有时间,抽抽空,多多联系一下,身边重要的人哟!四种指示灯和一个按钮:MODE->代表红色POWER->代表黄色ACTIVE->代表蓝色STATUS->代表XX(不记得了)黑色按钮:按键上电,会进入升级模式,这里我们一般默认不需要改变!仿真工具-ICE8-PRO介绍隶属于产品分支里。烧写工具-CMS-WRITER8 LITE介绍点击。

星新计划的博客 8265

Visitor模式和Observer观察者模式

所谓访问者模式,就是不同服务提供者对同一种服务提供的服务内容不同。 Typedef   std::vector&lt;Ivisitable&gt;   VisitbleArray;     Typedef  std::vector&lt;IVisitor&gt;  VisitorArray; Interface  IVisitable {       void      AcceptSu...

weixin_34112181的博客 274

DAMMFND: Domain-Aware Multimodal Multi-view Fake News Detection

虚假新闻的泛滥不仅严重阻碍了互联网社交媒体的健康发展,还在政治、经济和社会层面造成了实际危害,凸显了自动化虚假新闻检测的重要性(Zhou 等,2015;Cui 等,2019;Zhu 等,2022a;Li 等,2024c,b,a)。现有的虚假新闻检测方法通常聚焦于特定领域的新闻,例如健康或政治领域。然而,在现实世界中,社交媒体上的新闻往往跨越多个领域,这就要求现有的虚假新闻检测方法必须考虑多域泛化(Nan 等,2021;Qi 等,2019;Zhu 等,2022b)。

qq_52053775的博客 337

基于Simulink的无迹卡尔曼滤波(UKF)SOC高精度估计仿真

本文介绍了基于Simulink的无迹卡尔曼滤波(UKF)在电池SOC高精度估计中的应用。通过无迹变换替代传统EKF的线性化过程,UKF显著提升了SOC估计精度,在强非线性工况下误差可控制在0.5%以内。文章详细阐述了UKF的核心原理,包括Sigma点生成、状态预测和观测更新等关键步骤,并基于Thevenin等效电路模型构建了完整的UKF SOC估算系统。通过Simulink建模和仿真验证,展示了UKF在大电流脉冲、变温工况等复杂场景下的优异性能,其动态响应时间小于30ms,长期累积误差低于0.7%。研究为储

amy_mhd的博客 124

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

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

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

1.FPGA开发软件安装——Vivado

目前主流的FPGA公司包括xilinx和Intel(原altera公司),其开发软件分别为vivado和quartusii。我们这里以目前国内应用较多的vivado为例进行安装讲解。 1、首先是去官网下载 Vivado 安装包:https://www.xilinx.com/support/download.html。下载这个最大的、支持所有的 OS 如 Windows/Linux 的安装包。 2、下载完之后,就进行解压。(最好在解压和安装之前都关闭所有的杀毒软件以防万一)。紧接着,解压完之后...

FPGA/MATLAB学习教程/源码/项目合作开发 8257

23个设计模式一文搞懂

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

weixin_72753562的博客 802

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

C#设计模式总览

本文是一篇个人学习笔记,主要用于作者日后的复习回顾。通过目录可以快速查阅相关内容,方便知识点的巩固与查找。

qq_41571387的博客 23

Camera2Demo

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

设计模式学习笔记清单

设计模式学习笔记清单          关于设计模式许多人已经耳熟能详,这段时间结合李建忠的教学视频以及大量网络资料,把这部分过了一遍,整理出学习笔记,而真正的深入学习和理解只能在具体的开发环境中日积月累。     设计模式其实就是一种“思想”,就像做菜,一开始学习的人难免会问"我现在学做了几道菜?",其实,真正的精髓不在菜品,而在如何调味,如何选料,备料等"最基本的原理和法则",掌握并熟...

weixin_33859665的博客 108

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【Java 23种设计模式实战】

本文通过电商订单系统实战讲解Java 23种设计模式,告别传统"Hello World"式教学。文章首先指出常见代码问题(如违反开闭原则、单一职责),然后分类详解创建型(单例、工厂等)、行为型(策略、观察者等)、结构型(代理、装饰器等)模式在订单系统中的应用场景,每个模式都配有可运行的业务代码示例。特别强调模式解决的实际问题(如订单审批流使用责任链模式、支付方式切换使用策略模式),并对比不同实现方式的优缺点(如5种单例模式实现)。最后提供设计原则对照、易混淆模式对比及Spring框架中的设计模式应用。

weixin_50870268的博客 561

【软件构造】--可复用性和可维护性

可复用性和可维护性

qq_53094471的博客 659

Java设计模式学习导航:23种模式详解与面试实战

从面向对象设计的基本原则出发,理解设计模式如何解决软件工程中的复用与扩展问题。单例、工厂、代理等模式在Java开发中高频出现,面试八股常考,实际代码重构更是离不开。本文以Java代码为例,系统梳理创建型、结构型、行为型三大类共23种GoF设计模式,对比易混淆概念,结合Spring、MyBatis等源码场景,提供一套从场景识别到动手重构的学习路径,帮助开发者从背概念进阶为灵活运用。

weixin_34318272的博客 207

AI推理SDK与Agent运行时中的设计模式实战落地

设计模式是应对高并发、低延迟、资源受限和动态配置等系统约束的工程契约,而非教科书中的静态范式。在AI推理SDK和Agent运行时中,Singleton、Factory、Observer、Strategy等经典模式必须结合C++ RAII、std::shared_ptr内存管理、std::variant编译期分发、weak_ptr防循环引用等特性才能真正生效。其技术价值在于将不确定的数据流与混沌的混合协议(REST/gRPC/MQTT/SQL)收敛为可验证的类型接口与生命周期契约,支撑模型热更、量化策略切换、

weixin_32830601的博客 189

Design Patterns:设计模式并不是用来阅读或知道就足已,其内理是成体系及有底层依赖逻辑的,按这份建议read and pratice可事倍功半

【代码】DesignPatterns。

the growth of Nick 180

SuperClaude Framework Socratic Mentor Agent 实战:以苏格拉底式提问驱动编程发现式学习

本技术指南围绕 SuperClaude Framework 的 `socratic-mentor` 教育型 Agent 展开,深入解析它如何以"战略性提问取代直接灌输"的方式,引导开发者自主发现 Clean Code 与 GoF 设计模式背后的原理。读完本文,你将掌握 Socratic Mentor 的完整行为规范(YAML 配置级)、三大核心原则、分阶段提问技术、学习会话编排方法,以及它如何与框

gitblog_01083的博客 439

SuperClaude Framework 的 Socratic Mentor 教学设计:基于苏格拉底提问法的编程教学 Agent 实现与集成指南

Socratic Mentor 是 SuperClaude Framework 中一个以苏格拉底式提问法(Socratic Method)为核心的教学型人格(persona),它将《Clean Code》与 GoF 设计模式两套经典知识体系嵌入提问流程,通过"引导式发现学习"而非直接灌输来帮助开发者建立编程直觉。本文以 [Socratic Mentor Agent 定义](https://link

gitblog_00131的博客 547

软考软件设计师备考全攻略:从核心考点到实战技巧

软件工程是构建高质量软件系统的系统性方法,其核心在于通过规范化的流程、方法和工具来管理软件开发的复杂性。其原理涵盖了从需求分析、系统设计到测试维护的全生命周期,旨在提升开发效率、保证软件质量并控制项目风险。掌握软件工程知识体系,对于开发者理解大型系统架构、进行规范化的数据库设计与UML建模至关重要,这不仅是应对系统设计面试的利器,更是实现职业进阶的基础。在众多技术认证中,软考软件设计师考试正是对这一知识体系的综合考核,尤其注重数据结构与算法、面向对象技术等核心模块的应用能力。备考过程本身,就是一次对软件工程

weixin_34080951的博客 383

大二2个月通过中级软件设计师学习路线

软件设计师中级备考经验分享 去年我通过两三个月的努力成功通过了软件设计师中级考试。作为基础一般的考生,我想分享一下真实备考经历: 学习周期:建议至少预留2个月时间,网上所谓的"速成"并不靠谱 核心资料:B站zst_2001(炸薯条)的课程+真题刷题软件 备考策略: 上午选择题:反复记忆固定知识点 下午大题:理解原理而非死记硬背 算法题:从基础练起,如背包问题、N皇后问题 学习方法: 看视频做笔记→分类整理知识点→反复刷题修正 重点掌握计算机系统、软件工程、数据库、面向对象等核心章节 设计

2604_95920027的博客 1756

软考-系统分析师-备考笔记

根据学习视频和一些资料整理的软考系统分析师考试笔记,2025年下半年通关

提子同学是我 1027
上一篇: DDD实践
下一篇: MySQL扩展
SproutingTime
博客等级 码龄8年 8粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值