博客
记录技术沉淀与生活思考 · 设计模式 / C++ / Qt / ROS / 行业洞察 / 人生感悟
Qt 3 篇
Qt 框架相关技术文章,涵盖元对象系统、事件系统、插件架构、信号槽等核心机制。
Qt 元对象系统深度解析
Meta-Object SystemQt 框架的基石:moc 编译器、Q_OBJECT 宏、信号槽、Q_PROPERTY 属性系统、动态反射、invokeMethod、Q_GADGET。本文从架构到源码全面剖析元对象系统的实现原理与高级用法。
查看详细Qt 事件系统深度解析
Event SystemQt 异步消息流的核心:事件循环、QEvent、notify/event 入口、事件过滤器、自定义事件。本文配以 PlantUML 类图与时序图剖析事件流转全过程,并对比信号槽的联系与区别,详解与 GUI 窗体的协作机制。
查看详细Qt ExtensionSystem 插件化框架深度解析
ExtensionSystemQt Creator 核心插件框架,支持动态加载、元数据驱动、依赖解析。本文详解架构设计、核心类实现、元数据解析流程与依赖拓扑排序,并以机器人示教器为例演示实战应用。
查看详细ROS 3 篇
ROS 机器人操作系统相关文章,涵盖核心概念、通信机制、架构解析、导航与运动规划等工业级机器人开发技术栈。
ROS 机器人操作系统深度介绍
Robot Operating System从核心概念、发展历史到分层架构全面解析 ROS,深入剖析分布式节点管理、话题/服务/动作三大通信机制、TF 坐标变换、QoS 服务质量、标准化消息接口等核心能力,辅以 Nav2、MoveIt!、Gazebo、RViz 等工具链介绍,并详细阐述 AMR 仓储、服务机器人、协作机械臂、自动驾驶、无人机等 6 大适用场景与 5 类不适用场景。
查看详细ROS 机械臂组件能力支持全解析
Manipulator / MoveIt!ROS 机械臂开发全栈指南,从 MoveIt! 九大核心能力(URDF建模、正逆运动学、OMPL规划、FCL碰撞检测、轨迹优化、抓取规划、PickPlace Pipeline),到5大典型应用场景(3C电子装配、无序分拣抓取、餐饮烹饪、实验室自动化、机床码垛),附视觉引导抓取完整架构图与 C++/Python/Launch/SRDF 四段基础代码实战,总结选型与学习路径建议。
查看详细ROS 视觉相机组件能力全解析
Vision / PerceptionROS 端到端视觉开发栈深度指南,覆盖六大核心组件:主流工业/深度相机驱动适配(RealSense/Orbbec/Basler/FLIR/大恒/海康)、image_transport 多策略传输(raw/compressed/h264)、image_pipeline 预处理流水线(去畸变/立体匹配/深度重建)、单目+多相机+IMU 标定工具链、3D 深度与 PCL 点云处理、感知算法集成(YOLO/SAM/Apriltag/ZBAR/VIO)、手眼标定 TF 融合。含6大工业场景(质检/Bin Picking/追溯/自动驾驶/视觉引导/医疗)+两相机工业质检站完整架构+C++/Python/Launch 三段基础代码实战与最佳实践清单。
查看详细创建型模式 5 种
关注对象的创建机制,提供灵活的对象创建方式。
单例模式
Singleton确保一个类只有一个实例,并提供全局访问点。常用于配置管理、日志系统、线程池等需要全局唯一资源的场景。
查看详细工厂方法
Factory Method定义创建对象的接口,让子类决定实例化哪个类。将对象创建延迟到子类,实现调用者与具体类型的解耦。
查看详细抽象工厂
Abstract Factory创建一系列相关或相互依赖对象的接口,无需指定具体类。用于产品族创建,如跨平台 UI 组件工厂。
查看详细建造者模式
Builder将复杂对象的构建与表示分离,同样的构建过程可以创建不同的表示。适合分步骤构建复杂配置对象。
查看详细原型模式
Prototype通过克隆已有实例来创建新对象,而非通过 new。避免重复初始化开销,适合创建成本高的对象。
查看详细结构型模式 7 种
关注类和对象的组合,解决接口适配和结构扩展问题。
适配器模式
Adapter将一个类的接口转换为客户期望的另一个接口。使原本接口不兼容的类可以协同工作,如旧接口到新接口的转换。
查看详细桥接模式
Bridge将抽象部分与实现部分分离,使它们都可以独立变化。用组合代替继承,解决多维度变化场景。
查看详细组合模式
Composite将对象组合成树形结构以表示"部分-整体"层次。使单个对象和组合对象的使用具有一致性,如文件系统、UI 树。
查看详细装饰器模式
Decorator动态地给对象添加额外职责,比子类继承更灵活。在不改变原对象的前提下增强功能,如 IO 流包装。
查看详细外观模式
Facade为子系统中的一组接口提供一个一致的界面。定义一个高层接口,降低子系统访问复杂度,封装内部细节。
查看详细享元模式
Flyweight运用共享技术有效地支持大量细粒度对象。通过共享内部状态减少内存占用,如字符串池、图形粒子系统。
查看详细代理模式
Proxy为其他对象提供代理以控制对这个对象的访问。用于远程代理、虚拟代理、保护代理等场景,如智能指针。
查看详细行为型模式 11 种
关注对象之间的职责分配和算法交互。
责任链模式
Chain of Responsibility将请求沿着处理者链传递,每个处理者决定处理或传递。解耦发送者和接收者,如事件冒泡、中间件链。
查看详细命令模式
Command将请求封装为对象,从而支持参数化、排队、日志和撤销。Qt QUndoCommand 撤销框架的底层模式。
查看详细解释器模式
Interpreter定义一种语言的文法表示,并使用解释器解释句子。常用于规则引擎、表达式求值、SQL 解析场景。
查看详细迭代器模式
Iterator提供方法顺序访问聚合对象元素而不暴露其内部表示。Qt 中 QList::const_iterator 等 STL 风格迭代器的实现。
查看详细中介者模式
Mediator用中介对象封装一系列对象交互,将网状多对多变为星型一对多。降低同事类耦合,如 UI 组件协调。
查看详细备忘录模式
Memento在不破坏封装性的前提下捕获对象内部状态并保存,用于后续恢复。实现撤销/恢复功能的核心模式。
查看详细观察者模式
Observer定义对象间一对多依赖,状态变化时自动通知所有观察者。Qt 信号槽机制的底层思想,发布-订阅模式。
查看详细状态模式
State对象内部状态改变时改变其行为,状态逻辑由独立状态类管理。消除大量 if-else 状态判断,如 Qt 状态机。
查看详细策略模式
Strategy定义一系列算法并封装为独立策略类,运行时可动态切换。机器人运动规划、排序算法选择等场景的利器。
查看详细模板方法
Template Method定义算法骨架,将具体步骤延迟到子类实现。父类控制流程,子类提供实现,是代码复用的经典模式。
查看详细访问者模式
Visitor在不改变元素类的前提下定义作用于元素结构的新操作。数据结构与操作分离,使用双重分派机制。
查看详细