- 博客(41)
- 资源 (3)
- 收藏
- 关注
原创 23、解释器模式(Interpreter)
解释器模式(Interpreter)是一种行为型设计模式,主要用于定义语言的文法,并使用该文法来解释句子。它提供了一个解释器来解释特定的语言表达式。
2024-10-06 16:08:00 140
原创 22、模板方法模式(Template Method)
模板方法模式(Template Method)是一种行为型设计模式,它定义了一个操作中的算法的框架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下重定义某些特定的步骤。
2024-10-06 16:01:08 201
原创 20、中介者模式(Mediator)
中介者模式是一种行为设计模式,用于通过一个中介对象来降低多个对象之间的耦合。它将对象之间的交互封装在中介者中,使得对象之间不直接引用彼此,从而简化了对象间的通信和管理。
2024-10-06 15:25:59 164
原创 19、访问者模式(Visitor)
访问者模式是一种行为设计模式,允许你在不改变类的结构的前提下,向类中添加新的操作。通过将操作封装在访问者类中,可以在不修改被访问对象的情况下增加新的功能。
2024-10-06 15:19:22 170
原创 18_迭代器模式(Iterator Pattern)
迭代器模式(Iterator Pattern)是一种行为设计模式,它提供一种方法来顺序访问一个聚合对象(如列表、集合等)中的元素,而无需暴露该对象的内部表示。
2024-10-06 15:07:24 190
原创 17、责任链模式(Chain of Responsibility Pattern)
责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,它将请求的发送者与接收者解耦,使多个对象都有机会处理该请求。通过将这些对象串联在一起形成一条链,请求在链上传递,直到有一个对象处理它为止。
2024-10-06 14:53:41 155
原创 16、状态模式(State Pattern)
状态模式(State Pattern)是一种行为设计模式,它允许一个对象在其内部状态改变时改变其行为。状态模式通过将状态的具体行为封装在状态类中,使得状态的变化更加灵活,符合开放-关闭原则。
2024-10-06 14:42:18 304
原创 15、命令模式(Command)
命令模式(Command)是一种行为型设计模式,它将请求封装为对象,从而使得可以使用不同的请求、队列或日志请求,以及支持可撤销操作。
2024-10-06 14:31:40 345
原创 14、策略模式(Strategy
策略模式(Strategy)是一种行为型设计模式,它允许在运行时选择算法的行为。通过将算法封装成独立的类,使得算法可以互换使用,而不影响使用算法的客户端代码。
2024-10-06 14:21:14 308
原创 13、观察者模式(Observer)
观察者模式(Observer)是一种行为型设计模式,用于定义对象之间的一对多依赖关系,使得当一个对象的状态发生变化时,所有依赖于它的对象都会收到通知并自动更新。
2024-10-06 14:09:47 511
原创 9、装饰者模式(Decorator
装饰者模式是一种结构性设计模式,它允许通过将对象嵌入到特殊的封装对象中来动态地为对象添加新功能。装饰者模式提供了比继承更灵活的扩展方式。
2024-10-06 13:10:34 349
原创 8、组合模式(Composite)
组合模式是一种结构性设计模式,它允许你将对象组合成树形结构,以表示“部分-整体”的层次关系。组合模式使得客户对单个对象和组合对象的使用具有一致性。
2024-10-06 12:44:32 304
原创 7、桥接模式(Bridge)
桥接模式是一种结构性设计模式,用于将抽象部分与实现部分分离,使它们可以独立变化。通过引入一个桥接接口,允许不同的实现方式和抽象类型组合,而无需修改已有的代码。
2024-10-06 12:26:00 264
原创 6、适配器模式(Adapter)
适配器模式是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一个接口。适配器模式使得原本由于接口不兼容而无法一起工作的类可以协同工作。
2024-10-06 12:15:28 250
原创 5、原型模式(Prototype)
原型模式是一种创建型设计模式,通过复制已有的对象来创建新的对象,而不是通过实例化新对象。原型模式适用于那些对象的创建成本较高或复杂度较大的场景。
2024-10-06 12:02:15 339
原创 4、建造者模式(Builder)
建造者模式是一种创建对象的设计模式,它将对象的构建过程与表示分离,使得同样的构建过程可以创建不同的表示。它通常用于构建复杂对象,特别是当对象的构造过程涉及多个步骤时。
2024-10-06 11:50:48 217
原创 3、抽象工厂模式(Abstract Factory)
而抽象工厂模式则适合需要创建多个相关产品的场景,强调产品族的统一性和协调性。抽象工厂模式(Abstract Factory):用于创建一系列相关或相互依赖的产品,通常涉及多个产品族。抽象工厂模式提供了更高的灵活性,可以在运行时轻松切换产品族,而工厂模式则更适合于当只需要一种产品时的场景。在工厂模式中,工厂类通常是具体的,而在抽象工厂模式中,工厂是抽象的,具体工厂类负责生成具体产品。工厂模式通常关注于某一特定类型的产品,而抽象工厂模式关注于多个产品类型的组合。1、系统需要独立于其产品的创建、组合和表示。
2024-10-06 11:16:09 220
原创 2、单例模式(Singleton)
单例模式确保资源的统一管理和有效利用,避免不必要的实例创建。延迟初始化:实例可以在首次使用时创建,而非在应用启动时。静态方法:用于获取实例,控制实例的创建和返回。全局访问:提供一个静态方法以访问该实例。私有构造函数:防止外部代码直接实例化。唯一性:类只有一个实例。线程池和数据库连接池。
2024-10-06 11:01:45 115
原创 1、工厂方法模式(Factory Method)
该模式将对象的创建过程封装在一个工厂类中,从而将对象的实例化与使用分离,增加了系统的灵活性和可扩展性。通过工厂方法模式,客户端代码能够灵活地创建不同的产品,而无需直接依赖具体的产品类。灵活性:可以通过扩展新的工厂和产品类来增加新功能,而无需修改现有代码。解耦:客户端代码无需关心具体的产品类,可以通过工厂接口获取对象。具体工厂:实现工厂接口,重写工厂方法以返回具体产品的实例。工厂接口:声明一个工厂方法,用于创建产品对象。产品接口:定义工厂方法所创建的对象的接口。具体产品:实现产品接口的具体类。
2024-10-06 10:15:13 357
原创 C++调用动态库.so(不存在.h时)
确保 libtest.so 文件在当前目录下,或者将其路径添加到环境变量 LD_LIBRARY_PATH 中.至此动态库创建已经完成。
2024-09-05 10:46:42 368
原创 OpenMP并行计算
描述: #pragma omp single 指定的代码段只由一个线程执行,而不是由所有线程执行。描述: #pragma omp master 确保只有主线程(线程ID为0的线程)执行特定的代码块,其他线程不会执行该块,也不会等待。描述: #pragma omp barrier 用于同步所有线程,确保在屏障之前的所有代码块都执行完毕后,所有线程才会继续执行。描述: #pragma omp critical 用于定义一个临界区,在该区域内的代码一次只能被一个线程执行,以防止数据竞争。
2024-08-28 09:09:51 397
原创 Ubuntu 系统唤醒时执行自定义脚本
请确保 <YOUR_SCRIPT_PATH> 是你希望在系统唤醒时执行的脚本的完整路径。使用 Systemd 的用户服务单元。1、创建一个新的用户服务单元文件。记录一下ubuntu 系统唤醒时执行自定义脚本的方法。Ubuntu 系统唤醒时执行自定义脚本。
2023-12-01 09:46:39 578
原创 Jetson Nano下安装opencv
https://github.com/opencv/opencv_contrib 下载对应的opencv_contrib。这个新仓库中有很多让人兴奋的功能:包括脸部识别和文本探测,以及文本识别、新的边缘检测器、充满艺术感的图像修复、深度地图处理、新的光流和追踪算法等)https://github.com/opencv/opencv.git 下载最新的opencv发布版本。在移植 OpenCV 前,需要先安装一些依赖项。在下载 OpenCV 源代码后,需要编译和安装 OpenCV 库。
2023-10-26 08:54:36 1249
转载 nvprof --metrics参数含义
在网上没有比较全的中文 ncu --metrics 参数含义,于是自己整理了一下官方和外国友人的笔记。
2023-04-12 19:37:27 1557 1
转载 cmake中文手册
@[TOC](这里CMAKE手册CMAKECMake 用法导览Preface : 本文是CMake官方文档CMake Tutorial (http://www.cmake.org/cmake/help/cmake_tutorial.html) 的翻译。通过一个样例工程从简单到复杂的完善过程,文档介绍了CMake主要模块(cmake, ctest, cpack)的功能和使用环境;从中可以一窥cmake的大体形貌。正文如下:本文下述内容是一个手把手的使用指南;它涵盖了CMake需要解决的公共构建系统的一些问题。
2022-05-10 10:07:46 2220 2
转载 RTP传输H.264
从零开始写一个RTSP服务器系列 ★我的开源项目-RtspServer 从零开始写一个RTSP服务器(一)RTSP协议讲解 从零开始写一个RTSP服务器(二)RTSP协议的实现 从零开始写一个RTSP服务器(三)RTP传输H.264 从零开始写一个RTSP服务器(四)一个传...
2022-04-28 08:56:09 179
转载 深入学习Linux摄像头(一)v4l2应用编程
深入学习Linux摄像头系列 深入学习Linux摄像头(一)v4l2应用编程 深入学习Linux摄像头(二)v4l2驱动框架 深入学习Linux摄像头(三)虚拟摄像头驱动分析 深入学习Linux摄像头(四)三星平台fimc驱动详解 深入学习Linux摄像头(一)v4l2应用...
2022-04-28 08:51:55 332
转载 YCrCb/YUV/RGB
今天对颜色一些格式转换有些不明白的地方,在网上找了一些文章,感谢原作者,现张贴如下:颜色空间是一个三维坐标系统,每一种颜色由一个点表示。在 RGB 颜色空间中,红,绿,蓝是基本元素。RGB 格式是显示器通常使用的格式。在 YUV 空间中,每一个颜色有一个亮度信号 Y,和两个色度信号 U 和 V。亮度信号是强度的感觉,它和色度信号断开,这样的话强度就可以在不影响颜色的情况下改变。YUV 格式通常用于 PAL制,即欧洲...
2022-04-27 20:10:50 1515
转载 Linux下各种压缩包的解压方法
Linux下各种压缩包的解压方法 分类: LINUX2013-05-20 15:56:00 <div class="Blog_con2"> ...
2022-04-27 20:03:14 3131
转载 TortoiseSVN客户端基本使用总结
TortoiseSVN 客户端基本使用总结版本:TortoiseSVN 1.13.11、本地右键命令1、SVN Update更新2、SVNCommit 提交3、Diff 比较差异4、Show log 查看历史变更记录5、Repository Browser 查看仓库结构6、Check for Modifications(检查更新)检查本地更新的文件/夹,与服务器上有差异的地方7、Revision graph版本图形8、Resolve解决冲突如果当前工作拷贝和版本库上的有冲突,不能
2022-04-27 20:00:11 2089
转载 C语言函数sscanf()的用法
C语言函数sscanf()的用法 分类: LINUX2013-10-11 08:16:22 <div class="Blog_con2"> ...
2022-04-27 19:57:31 498
C程序设计语言(中文版)
2014-01-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人