命令模式 命令模式是一种行为设计模式,它将请求封装成一个对象,从而使我们可以将不同的请求、队列或日志请求等参数化,同时支持可撤销的操作。该模式的核心思想是将请求发送者和接收者...
命令模式 命令模式是一种行为设计模式,它将请求封装成一个对象,从而使我们可以将不同的请求、队列或日志请求等参数化,同时支持可撤销的操作。该模式的核心思想是将请求发送者和接收者...
责任链模式 责任链模式是一种行为型设计模式,它将请求和处理请求的对象解耦,形成一个请求处理链。在该模式中,多个对象依次处理同一个请求,直到找到一个能够处理该请求的对象为止。 ...
代理模式 代理模式是一种结构型设计模式,它的主要作用是为其他对象提供一种代理以控制对这个对象的访问。代理对象与被代理对象实现了相同的接口,客户端通过代理对象访问被代理对象,代...
外观模式 外观模式(Facade Pattern)是一种结构型设计模式,它提供了一个统一的接口,用来访问子系统中的一群接口。外观模式定义了一个高层接口,使得客户端可以更加方便...
对象树与组合模式的关系 Qt 的对象树机制是组合模式的一种实现,它使用了组合模式的思想来管理对象的父子关系。在 Qt 中,每个对象都可以有一个父对象,也可以有多个子对象。当一...
桥接模式 桥接模式(Bridge Pattern)是一种用于将抽象部分和实现部分分离的设计模式。它通过将实现部分抽象化,使得抽象部分和实现部分可以独立地变化,从而实现系统的松...
Qt源码的设计优秀程度,相信使用过Qt的程序员都会有所感受。若深入源码去体会,则感受更深。废话不多说,先说目的。笔者希望通过解析Qt框架中使用到的设计模式和面向对象设计原则,...
背景 CMake是一个跨平台的构建系统,它能自动生成各种平台和编译器的构建文件,这对于C++开发人员来说是必须掌握使用的工具。CMake的特点包括: 跨平台构建:CMake支...
关键概念 下面会说到虚函数相关的一些重要细节。了解这些概念对于理解C++中的虚函数调用和动态类型检查非常重要。虽然这些细节在汇编层面不一定直接可见,但它们确实影响了编译器如何...
前言 上一篇文章中,我们了解到了x86-32 MASM的关键寄存器,常用的汇编指令,以及给出简单的C++程序编译后的汇编代码,并对照源C++代码进行了逐行解析。本文想要讨论的...
前言 这个标题起的有点纠结,感觉不太好起。实际上本文想要讨论的场景,是一个比较经典的Windows C++商业应用软件的开发需求:我们希望能够在程序发生异常并崩溃时,能够弹出...
除了想入门浏览器内核开发的读者之外,这篇文章对于CEF(Chromium Embedded Framework)开发者也有一定的参考意义。CEF是一个将Chromium浏览器...
前言 C++程序员始终是要面对汇编的,不管是为了分析崩溃转储文件,做必要的性能优化,理解计算机运行过程,或者是通过汇编的角度理解C++,学习汇编语言都是必要的,此处不进行赘述...
如果是C++程序员,应该对悬挂指针这种pain in the ass十分熟悉了。为了避免悬挂指针问题,一般有两种解决思路: 在delete指针时,必须将指针置空。后续使用时,...
简介 Chromium和CEF在其内部JavaScript(JS)实现中使用V8 JavaScript引擎。浏览器中的每个帧(frame)都有其自己的JS上下文(contex...
该文章大量文案使用ChatGPT生成 Windows系统下,什么是环境变量?进程的环境变量和系统的环境变量有什么关系?在Windows系统下,环境变量是一种包含在操作系统环境...
博主:Qt的信号槽机制的底层实现是怎样的?信号槽机制和观察者模式有什么关系? ChatGPT老师答复:Qt 的信号槽机制是一种事件驱动机制,它主要通过建立函数指针来实现。在 ...
API使用部分的介绍在末尾,文章前面会有比较长的基础简介,视自己的技术水平可看可不看,丰俭由人~ HTTP协议与TCP/IP协议族的关系 当我们谈到TCP/IP时,会有两个含...
前置知识 本文假定读者已经大概知道什么是静态库和动态库,并且有一定的使用经验;编写过简单的dll和lib模块,并用于开发可执行文件中。前置知识部分会介绍.lib和.dll文件...
掌握性能优化技巧,在平时养成编写性能良好程序的习惯,远比你想象中重要 ”程序员浪费了太多的时间去思考和担忧程序中那些非关键部分的速度,而且考虑到调试和维护,这些为优化而进行的...