命令模式 命令模式是一種行為設計模式,它將請求封裝成一個對象,從而使我們可以將不同的請求、隊列或日志請求等參數(shù)化,同時支持可撤銷的操作。該模式的核心思想是將請求發(fā)送者和接收者...
命令模式 命令模式是一種行為設計模式,它將請求封裝成一個對象,從而使我們可以將不同的請求、隊列或日志請求等參數(shù)化,同時支持可撤銷的操作。該模式的核心思想是將請求發(fā)送者和接收者...
責任鏈模式 責任鏈模式是一種行為型設計模式,它將請求和處理請求的對象解耦,形成一個請求處理鏈。在該模式中,多個對象依次處理同一個請求,直到找到一個能夠處理該請求的對象為止。 ...
代理模式 代理模式是一種結構型設計模式,它的主要作用是為其他對象提供一種代理以控制對這個對象的訪問。代理對象與被代理對象實現(xiàn)了相同的接口,客戶端通過代理對象訪問被代理對象,代...
外觀模式 外觀模式(Facade Pattern)是一種結構型設計模式,它提供了一個統(tǒng)一的接口,用來訪問子系統(tǒng)中的一群接口。外觀模式定義了一個高層接口,使得客戶端可以更加方便...
對象樹與組合模式的關系 Qt 的對象樹機制是組合模式的一種實現(xiàn),它使用了組合模式的思想來管理對象的父子關系。在 Qt 中,每個對象都可以有一個父對象,也可以有多個子對象。當一...
橋接模式 橋接模式(Bridge Pattern)是一種用于將抽象部分和實現(xiàn)部分分離的設計模式。它通過將實現(xiàn)部分抽象化,使得抽象部分和實現(xiàn)部分可以獨立地變化,從而實現(xiàn)系統(tǒng)的松...
Qt源碼的設計優(yōu)秀程度,相信使用過Qt的程序員都會有所感受。若深入源碼去體會,則感受更深。廢話不多說,先說目的。筆者希望通過解析Qt框架中使用到的設計模式和面向對象設計原則,...
背景 CMake是一個跨平臺的構建系統(tǒng),它能自動生成各種平臺和編譯器的構建文件,這對于C++開發(fā)人員來說是必須掌握使用的工具。CMake的特點包括: 跨平臺構建:CMake支...
關鍵概念 下面會說到虛函數(shù)相關的一些重要細節(jié)。了解這些概念對于理解C++中的虛函數(shù)調(diào)用和動態(tài)類型檢查非常重要。雖然這些細節(jié)在匯編層面不一定直接可見,但它們確實影響了編譯器如何...
前言 上一篇文章中,我們了解到了x86-32 MASM的關鍵寄存器,常用的匯編指令,以及給出簡單的C++程序編譯后的匯編代碼,并對照源C++代碼進行了逐行解析。本文想要討論的...
前言 這個標題起的有點糾結,感覺不太好起。實際上本文想要討論的場景,是一個比較經(jīng)典的Windows C++商業(yè)應用軟件的開發(fā)需求:我們希望能夠在程序發(fā)生異常并崩潰時,能夠彈出...
除了想入門瀏覽器內(nèi)核開發(fā)的讀者之外,這篇文章對于CEF(Chromium Embedded Framework)開發(fā)者也有一定的參考意義。CEF是一個將Chromium瀏覽器...
前言 C++程序員始終是要面對匯編的,不管是為了分析崩潰轉儲文件,做必要的性能優(yōu)化,理解計算機運行過程,或者是通過匯編的角度理解C++,學習匯編語言都是必要的,此處不進行贅述...
如果是C++程序員,應該對懸掛指針這種pain in the ass十分熟悉了。為了避免懸掛指針問題,一般有兩種解決思路: 在delete指針時,必須將指針置空。后續(xù)使用時,...
簡介 Chromium和CEF在其內(nèi)部JavaScript(JS)實現(xiàn)中使用V8 JavaScript引擎。瀏覽器中的每個幀(frame)都有其自己的JS上下文(contex...
該文章大量文案使用ChatGPT生成 Windows系統(tǒng)下,什么是環(huán)境變量?進程的環(huán)境變量和系統(tǒng)的環(huán)境變量有什么關系?在Windows系統(tǒng)下,環(huán)境變量是一種包含在操作系統(tǒng)環(huán)境...
博主:Qt的信號槽機制的底層實現(xiàn)是怎樣的?信號槽機制和觀察者模式有什么關系? ChatGPT老師答復:Qt 的信號槽機制是一種事件驅動機制,它主要通過建立函數(shù)指針來實現(xiàn)。在 ...
API使用部分的介紹在末尾,文章前面會有比較長的基礎簡介,視自己的技術水平可看可不看,豐儉由人~ HTTP協(xié)議與TCP/IP協(xié)議族的關系 當我們談到TCP/IP時,會有兩個含...
前置知識 本文假定讀者已經(jīng)大概知道什么是靜態(tài)庫和動態(tài)庫,并且有一定的使用經(jīng)驗;編寫過簡單的dll和lib模塊,并用于開發(fā)可執(zhí)行文件中。前置知識部分會介紹.lib和.dll文件...
掌握性能優(yōu)化技巧,在平時養(yǎng)成編寫性能良好程序的習慣,遠比你想象中重要 ”程序員浪費了太多的時間去思考和擔憂程序中那些非關鍵部分的速度,而且考慮到調(diào)試和維護,這些為優(yōu)化而進行的...