自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 【C++设计模式】设计模式的分类

模板方法模式(TemplateMethod Pattern)解释器模式(Interpreter Pattern)原型模式(Prototype Pattern)组合模式(Composite Pattern)享元模式(Flyweight Pattern)建造者模式(Builder Pattern)适配器模式(Adapter Pattern)策略模式(Strategy Pattern)备忘录模式(Memento Pattern)访问者模式(Visitor Pattern)外观模式(Facade Pattern)

2026-01-20 10:18:33 716 1

原创 【学习】线程安全的有界阻塞队列

线程安全的有界阻塞队列(支持移动语义)、阻塞队列、队列

2026-08-14 16:17:27 177

原创 【学习】C++ RAII

RAII(资源获取即初始化)是C++的核心技术,通过对象的生命周期自动管理资源(内存、文件句柄等)。其核心思想是:在构造函数中获取资源,在析构函数中释放资源,确保资源安全释放。例如,动态内存在对象构造时分配,析构时自动删除,避免内存泄漏。即使程序异常终止,析构函数仍会执行,保证资源释放。RAII技术有效解决了资源泄露问题,是C++资源管理的核心机制。

2026-02-09 15:45:09 311 1

原创 【C++设计模式】AbstractFactory

1、AbstractFactory模式是为创建一组(有多类)相关或依赖的对象提 供创建接口,而Factory模式是为一类对象提供创建接口或延 迟对象的创建到子类中实现。AbstractFactory模式中的工厂是分为优质工厂、劣质工厂等等工厂,但是工厂有。1、什么时候用Factory,什么时候用AbstractFactory,怎么区别?2、简单点说,Factory模式中的工厂是专门生成铅笔的,但是有。的产品,比如优质工厂会生产有优质铅笔、优质橡皮、优质钢笔等等。的产品,比如优质铅笔、劣质铅笔等等铅笔,

2026-01-26 17:50:21 49

原创 【实战】U盘格式的修改

本文记录了使用新U盘时无法格式化为Fat32格式的问题及解决方法。通过下载安装MiniTool Partition Wizard免费版工具,选择U盘右键格式化功能,成功将U盘转换为所需格式。具体步骤包括:下载安装软件→选择U盘→执行格式化→选择Fat32格式→应用更改。该方法有效解决了Windows系统自带格式化工具不支持大容量U盘Fat32格式的问题。

2026-01-26 15:17:13 244

原创 【C++设计模式】Observer模式

这里的目标Subject提供依赖于它的观察者Observer的注册(Attach)和注销(Detach) 操作,并且提供了使得依赖于它的所有观察者同步的操作(Notify)。观察者 Observer 则提 供一个Update操作,注意这里的Observer的Update操作并不在Observer改变了Subject目 标状态的时候就对自己进行更新,这个更新操作要延迟到Subject对象发出Notify通知所有 Observer 进行修改(调用Update)。

2026-01-23 09:23:58 180

原创 【C++设计模式】Strategy模式

使用Strategy 模式,Strategy 模式实际就是将算法的逻辑抽象接口(DoAction)封装到一个类中(Context),再 通过委托的方式将具体的算法实现委托给具体的Strategy类来实现(比如ConcreteStrategeA 类)。对于某一个业务逻辑在不同的对象中有不同的细节实现,但是逻辑的框架是相同的。在追求尽可能地提高系统模块内部的内聚、尽可能降低模块间的耦合,Strategy 提供了一种实现框架。Strategy 模式是采用**组合(委托)**的方式。

2026-01-23 09:23:47 60

原创 【C++设计模式】Template模式

对于某一个业务逻辑在不同的对象中有不同的细节实现,但是逻辑的框架是相同的。在追求尽可能地提高系统模块内部的内聚、尽可能降低模块间的耦合,Template提供了一种实现框架。Strategy 模式解决的是和Template模式类似的问题,应当对比学习。使用Template模式,Template 模式实际上就是利用面向对象中。的概念实现算法实现细节和高层接口的松耦合。Template模式是采用。

2026-01-22 12:07:38 371

原创 【C++设计模式】State模式

人或物在不同状态下会有不同的行为动作,而行为动作可以拆分成不同时序,且在一个行为动作内可能会有共性的特性。在出口处,要刷卡,门打开出去。但是当状态数目很多时,维护一大组switch/casa时一件很难的事情,并且可读性很差。使用State模式,在State模式中,我们将状态逻辑和动作实现进行分离。当一个操作中要维护大量的case分支语句,并且这些分支依赖于对象的状态。:状态逻辑和动作在switch/case中一般用函数去维护,没有实现逻辑和动作分离,这就会导致程序的拓展性和维护得不到保证。

2026-01-22 10:09:17 123

原创 【C++设计模式】Singleton模式

使用Singleton模式,看到问题我们会想,将一个类定义为全局可访问的,并且我们约定只创建一个实例。从功能上看,似乎类似,但是单例模式提供了更多的。​ 可以更好地控制初始化顺序,而全局变量的初始化顺序在不同编译单元中可能是不确定的;​ 可以延迟初始化(懒加载),而全局变量通常在程序启动时就被初始化(静态初始化);b)灵活性:可以通过派生,可以通过子类来改变单例的行为,而全局变量通常难以扩展;​ 提供了一个明确的访问点,并且可以封装复杂的初始化逻辑。

2026-01-21 09:23:13 65

原创 【C++设计模式】Factory模式

摘要 工厂模式通过抽象基类和接口解决了多态实现中的两个关键问题:1)避免直接依赖具体子类名称,减少命名冲突;2)将具体实例化逻辑延迟到子类中实现。该模式的核心优势在于封装对象创建过程,并允许父类仅定义创建接口,而由子类ConcreteFactory负责具体实现。示例代码展示了抽象产品Product、具体产品ConcreteProduct以及对应的工厂层级结构,通过ConcreteFactory的CreateProduct方法实现对象创建的解耦。这种设计提高了系统的灵活性和可扩展性。

2026-01-20 10:03:55 214

原创 【基础】enum和typedef enum区别

在看一些项目源码的时候经常看到使用第一种的,但在实际开发项目中,常用第二种。// 可以直接使用 Color 作为类型名。// 使用时必须加 enum 关键字。

2026-01-16 16:47:46 52

原创 【基础】friend关键字的用法

2、嵌套类的用途,当一个类声明在另一个类的内部时,这称为嵌套类或内部类。关键字用于允许其他类或函数访问当前类的私有和保护成员。

2026-01-16 16:31:56 139

原创 【思考】开发中使用Pimpl

引言:在开发中使用到Pimpl,因类中有很多属性,故思考应该将属性设置为public还是private?​ 经过跟前辈的讨论和网上资料查询,最后决定使用public。,真正的封装边界是外部类的公有接口。,不需要很多的冗余的get/set。Pimpl 模式的核心思想。

2026-01-12 19:47:29 47

原创 【实战】移植模块遇到的ISP镜像分区大小不足问题

问题解决方法:找到分区的脚本,将分区的大小增大,而且要注意,有些分区时必须按整数倍去设置,比如我遇到的这个问题,从0x3000000改到0x3200000,是0x2000的整数倍。特此记录问题:Error: Assigned partition size is less than the。等多个独立编译好的组件,按照芯片公司规定的格式,打包成一个单一的、可以直接烧录的镜像文件。在移植模块时,新增一个功能模块,导致编译报错。

2026-01-05 19:33:34 175

原创 makefile--基本写法参考

makefile基本写法与解释

2023-12-27 23:27:10 452

自用,skill学习,方便下载

自用,skill学习,方便下载

2026-09-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除