- 博客(57)
- 收藏
- 关注
原创 一文了解基于UDS协议的车载诊断服务
UDS,全称,即统一诊断服务,它是一种用于车辆诊断场景的通信协议,被广泛应用于汽车电子中测试设备(诊断仪软件、数据记录器等)和ECU之间的数据通信,它基于ISO-14229标准,通过CAN总线或以太网发送和接收消息。UDS协议主要用于汽车电子控制单元(ECU)的诊断和调试,诊断仪可以向ECU发送特定的请求,从而获取ECU的状态信息和故障码,这些状态信息被用于辅助开发人员诊断和解决车辆故障问题,比如发动机异常、变速箱问题、防抱死制动系统(ABS)故障等。
2025-02-08 01:20:22
865
原创 C++编程库与框架实战——ZeroMQ消息队列
消息队列是一种进程间的通信机制,用于在不同进程之间同步消息。通信期间,一个进程将消息放入该队列中,然后另一个进程就可以从该队列中取出这条消息。消息队列可以是异步的,即发送方无需等待接收方的确认或回复就可以立即执行下一步的操作。消息队列是一种缓冲机制,即使接收方当前无法处理某个消息,该消息也不会立即丢失,而是被存储在队列中。消息队列的通信方式减少了进程间的耦合,提高了系统的可扩展性和可维护性。消息队列还可以用于实现分布式的任务调度和负载均衡。
2025-01-03 22:23:32
1112
原创 C++编程库与框架实战——sqlite3数据库
SQLite是一个库文件,并不是单独的进程,它可以静态或动态链接到C++应用程序中,然后应用程序可以利用SQLite提供的编程接口进行访问和处理SQLite存储文件。存储文件一般带有".db"后缀。SQLite支持使用命令行与关系型数据库进行交互,SQLite命令行类似于SQL语句,可以完成创建(Create),查询(Select),插入(Insert)等操作。在C/C++开发场景使用SQLite,上手特别容易,前期只需要在文件系统中创建一个新文件并调用SQLite提供的C/C++函数去连接即可。
2024-11-24 21:29:38
1039
原创 C++设计模式——Singleton单例模式
单例模式,英文全称,是一种创建型设计模式,它保证一个类在程序中仅有一个实例,并对外提供一个访问的该类实例的全局接口。单例模式通常用于需要控制对象资源的开发场景,一个类只创建一个对象的设计,既可以避免创建过多副本所造成的资源浪费现象,又可以避免引发数据一致性等问题。在数据库连接、线程池设计、日志系统设计等开发场景,经常使用单例模式来创建对象,可以有效地降低对内存资源的占用。在编码时,为了防止外部直接通过new关键字创建对象实例,Singleton类的构造函数必须是私有的。
2024-11-24 21:01:35
1190
原创 C++设计模式——Abstract Factory Pattern抽象工厂模式
抽象工厂模式是一种创建型设计模式,它提供了一种将相关/依赖对象组合在一起创建的方式,而无需指定它们的具体类。抽象工厂模式与工厂方法模式的区别:工厂方法模式将对象的创建过程延迟到子类中,允许用户通过一个统一的接口来请求他们想要的具体产品,而无需知道产品的具体实现。在这个模式中,工厂类只负责生产同一系列的产品,但具体哪种产品由子类决定。抽象工厂模式更进一步,它提供了一个接口,用于创建一系列相关的或相互依赖的对象,而不是单一对象。
2024-11-24 20:35:05
1115
原创 C++设计模式——Factory Method工厂方法模式
工厂方法模式是一种创建型设计模式,它提供了一种创建对象的方法,而无需指定具体的类,也不需要直接指定对象的类型。工厂方法模式抽象了对象的创建过程,使得客户端只需要通过指定具体的参数,而无需关心对象的创建细节。工厂方法模式将创建对象的逻辑封装在一个类(工厂类)中,它提供了一种通过调用工厂类的方法来创建对象的方式,而无需直接使用对象的构造函数,外部客户端通过调用工厂类的方法来获取所需的对象。
2024-10-24 02:05:47
956
原创 C++设计模式——Visitor访问者模式
访问者模式是一种行为型设计模式,它允许开发者定义一系列操作,这些操作可以应用于同一个对象结构中的不同元素。访问者模式将算法与对象的结构分离,通过这种方式,访问者模式可以在不改变原有对象的前提下,定义新的操作。访问者模式使得操作可以独立于数据结构而变化。游客参观:在旅游景区中,游客可以作为访问者,景区的各个景点作为被访问的元素。游客根据个人兴趣对不同的景点进行参观和了解。医生查房:医生作为访问者根据病人的病情和需要,对不同的病人进行检查和治疗。
2024-09-13 00:15:00
1175
原创 C++设计模式——Prototype Pattern原型模式
原型模式是一种创建型设计模式,它允许通过克隆已有对象来创建新对象,从而无需调用显式的实例化过程。原型模式的设计,使得它可以创建一个与原型对象相同或类似的新对象,同时又可以减少对象实例化操作产生的性能开销,使得创建对象的操作更加便捷,它减少了大量不必要的重复工作,并提高了系统性能。当创建对象的操作比较复杂和耗时的时候,原型模式则提供了一个更加高效和简单的创建对象的模式,它可以更加快速的创建对象的副本,且不需要依赖对象的某些实例化步骤,它避免了使用传统的new关键字创建对象实例时的复杂构造过程。
2024-09-12 00:45:00
1974
原创 C++设计模式——Builder Pattern建造者模式
建造者模式,又被称为生成器模式,是一种创建型设计模式,它将复杂产品的构建过程分解为一系列简单的步骤,每个步骤由独立的建造者对象负责。建造者模式常用于创建复杂的对象,它避免了直接传递大量参数来构造函数,使得构建过程变得可控,让代码变得灵活和可维护。建造者模式允许开发者按照指定的步骤创建复杂对象,构建过程的细节被封装在具体建造者中,将创建对象的过程和表示对象的过程分离,且同一个构建过程可以使用不同的具体建造者以及不同的顺序来创建不同的表示。
2024-09-12 00:30:00
1986
原创 C++设计模式——Interpreter解释器模式
解释器模式是一种行为型设计模式,它用于定义一个语言的文法并解析语言中的表达式,使开发者可以实现自定义语言,并通过解释器对语言中的表达式进行解析和执行。解释器模式主要用于解决对特定表达式的解析与执行,它定义了一种解释器的语法规则,通过解释器来解析并执行自定义的语言表达式。通过解释器,可以将复杂的语言解析问题拆分为简单的表达式解析,并且可以通过增加新的解释器对象来扩展语言的功能。自然语言解释器:比如翻译软件,可以将一种语言的句子解释为另一种语言。
2024-09-12 00:15:00
1123
原创 C++设计模式——Memento备忘录模式
备忘录模式是一种行为型设计模式,它允许将对象的状态保存在外部,并在需要时恢复。备忘录模式允许在不破坏封装性的前提下,捕获并存储一个对象的内部状态,并在需要时将其恢复到之前的状态。在某些开发场景,备忘录模式可以用于缓存函数的结果,避免重复计算,以提高性能。在软件开发中,备忘录模式常应用于某些计算密集型、IO密集型的操作场景,例如数据分析、图形处理等。文本编辑器:当我们在文本编辑器中进行编辑操作时,可以使用撤销功能恢复到之前的状态。游戏存档:我们可以在游戏中存档,以便下次打开时恢复到之前的游戏进度。
2024-09-11 01:17:06
1360
原创 C++设计模式——Mediator中介者模式
中介者模式是一种行为型设计模式。它通过一个中介者对象将多个对象之间的交互关系进行封装,使得对象之间的交互需要通过中介者对象来完成。该设计模式的结构很容易理解,以中介者为中心。中介者模式的设计思想侧重于在对象之间增加一个用来调度的中介。有了中介者模式,各个对象可以专注于各自的业务处理逻辑,而不需要关心通信的具体实现细节。航空管制系统:航空管制系统作为中介者,协调飞机、航空公司和机场的通信和协作。交易系统:在金融领域,交易系统将银行、金融机构、客户等各个参与者进行协调,确保资金的安全快速转移。
2024-09-11 01:14:17
1737
原创 C++设计模式——State状态模式
状态模式是一种行为型设计模式,状态模式允许对象在内部状态发生切换时改变它自身的行为。状态模式的主要目的是将复杂的状态切换逻辑抽象化为一组离散的状态类,使代码结构更加清晰和易于维护。状态模式将对象的行为封装到不同的状态类中,从而在应用程序的状态发生改变时,会自动切换到对应的状态类。状态模式使得状态的切换被表现为类对象的切换。交通信号灯:交通信号灯有红灯、绿灯等多种状态。每个状态都定义了不同的行驶规则。购物流程:用户在购物流程中有多种状态,例如浏览商品、添加购物车、填写收货地址等。
2024-09-11 01:10:25
1235
原创 C++设计模式——Command命令模式
命令模式是一种行为型设计模式。在实际开发场景中,命令模式将一个请求的处理或者一个具体操作封装为一个对象,从而可以让开发者根据不同的请求参数来生成不同的执行函数。命令模式的本质是对具体命令的拆解和封装,实现命令发送者和命令接收者的解耦。命令模式使得具体的命令可以被存储和传递,由命令接收者来指定这个命令何时被执行、撤销等。命令模式中的发送者只需要关注命令的发送即可,不需要关注具体命令的执行流程。遥控器:通过在遥控器上按下不同的按钮来执行不同的操作,遥控器使得发送者(用户)与接收者(比如电视、空调等)解耦。
2024-09-06 02:45:10
1492
原创 C++设计模式——Chain of Responsibility职责链模式
职责链模式需要使用多个对象,其中的每个对象要么处理请求,要么将请求传递给下一个对象,该模式因此可以实现发送方与接收方的松散耦合。在职责链模式中,一个对象可以被理解为处理器,每个处理器都包含对下一个处理器的引用,多个对象之间形成了一个链表的结构。异常处理:在程序开发中,每个异常处理器可以处理特定类型的异常,如果当前处理器无法解决,则传递给下一个处理器。继承自抽象处理器,包含了对处理请求接口的具体实现,负责处理特定类型的请求或将请求传递给下一个处理器。有扩展性,可以在最小改动的情况下添加新的处理器。
2024-09-04 01:40:32
1053
原创 C++设计模式——Template Method模板方法模式
模板方法模式是一种行为型设计模式,它先定义了一个算法的大致框架,然后将算法的具体实现步骤分解到多个子类中。模板方法模式为算法设计了一个抽象的模板,算法的具体代码细节由子类来实现,从而使算法在整体上结构稳定,但是又能被灵活修改和扩展。美食烹饪:烹饪包含很多步骤,包括选食材、切菜、煮熟等,但是每道菜的食材和烹饪时间会不同,此时可以将烹饪的通用步骤抽象为模板方法,具体细节由不同的菜来决定。游戏开发:游戏中的角色有移动、攻击、防御等共同行为,将共同行为抽象为模板方法,具体细节根据不同的游戏角色来单独实现。
2024-09-04 01:26:04
1594
原创 C++设计模式——Strategy策略模式
策略模式是一种行为型设计模式,策略模式在软件开发场景中定义了一系列的算法,并将每个算法单独封装在可替换的对象中,使应用程序在运行时可以根据具体的上下文来动态地选择和切换算法,同时保持原有的代码架构不被修改。策略模式的设计使得算法的实现与调用被分离,让算法可以独立于外部客户端进行开发和改动,使用独立的类来封装特定的算法,也避免了不同算法策略之间的互相影响。策略模式能适应多种应用场景,为了满足业务需求,应用程序在运行时可以选择不同的算法策略来达到最优的实现效果。
2024-09-04 01:15:28
1652
原创 C++设计模式——Observer观察者模式
观察者模式是一种行为型设计模式,又被称为"发布-订阅"模式,它定义了对象之间的一对多的依赖关系,当一个对象的状态发生变化时,所有依赖于它的对象都会收到通知并自动更新。观察者模式的关注点是对象之间的通信以及被观察对象的状态。报纸订阅:报纸的内容发生变化时,订阅了该报纸的读者们都会收到通知并阅读最新的内容。股票投资:股票的价格发生波动时,投资者们会根据最新价格修改相应的投资决策。天气预报:当天气发生变化时,订阅了该服务的用户们会收到通知。
2024-09-04 00:40:25
1278
Linux内核源码+官方文档(linux-6.12.1)
2024-11-29
Node.JS安装包(node-v23.3.0-x64.msi)
2024-11-29
Android-NDK-r28c-Mac(android-ndk-r27c-darwin.dmg)
2024-11-29
Android-NDK-r28c(android-ndk-r28-beta2-linux.zip)
2024-11-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人