background picture of the home page

Hello, World!

Hello! I'm Charlie, who do favor in C++ with Qt6 Application Programming ,OS with computer architechure designing, embedded C Programming!

精读 C++20 设计模式:行为型设计模式——观察者模式

精读 C++20 设计模式:行为型设计模式——观察者模式 前言 观察者!这个是一个很有名的设计模式——简而言之,我们这个模式在关心对象的变化。当对象变化的时候,我们要触发点事情,这个怎么做呢?我们要放一个观察者,看着它:嘿对象变了处理点事情!这就是这个设计模式在做的事情。 Observer<T> 现

thumbnail of the cover of the post

精读 C++20 设计模式:行为型设计模式 — 备忘录模式

精读 C++20 设计模式:行为型设计模式 — 备忘录模式 前言 我们现在往往会使用撤销 / 回退功能。这就意味着,咱们需要准备备忘所有的操作和他们的正反双方操作。这个在咱们的命令模式中的redo/undo模式看到了。当我们实现“撤销 / 回退”功能、快照保存、或者需要在不暴露内部实现的情况下记录对

thumbnail of the cover of the post

精读C++20设计模式:行为型设计模式:中介者模式

精读C++20设计模式:行为型设计模式:中介者模式 前言 中介者模式试图做的事情很简单。他跟其他行为型设计模式类似,都希望交互对象的耦合是松散的而不是紧密的。对于特别复杂的系统里,对象之间的交互会像蛛网一样纠结:A 直接调用 B,B 又调用 C,C 反过来修改 A 的状态——改动一处,波及多处。 中

thumbnail of the cover of the post

精读C++20设计模式——行为型设计模式:迭代器模式

精读C++20设计模式——行为型设计模式:迭代器模式 前言 标准库就是再好不过的例子了,到处都是迭代器(憋笑),很显然,在组合模式的时候,我们经常有这样的需求:需要遍历一个集合(数组、链表、树、图、数据库结果集等),但又不希望暴露集合的内部表示或把遍历逻辑散落在调用方代码中。把遍历逻辑和集合实现耦合

thumbnail of the cover of the post

精读C++20设计模式——行为型设计模式:解释器模式

精读C++20设计模式——行为型设计模式:解释器模式 前言 笔者的这个更多是整理出来的内容,我没用过解释器模式,或者说,即使我真设计过一点DSL,因为犯不着那么麻烦,我也就没有采用如此刻板的解释器模式 如果你跳起来说——嘿这个我熟悉啊,我天天写的Python就是解释器语言,我说你跳。。。对了。还真是

thumbnail of the cover of the post

精读C++20设计模式——行为型设计模式:命令模式

精读C++20设计模式——行为型设计模式:命令模式 前言:Lets Command! Command设计模式实际上不太Command。这个比较反直觉。因为Command设计模式压根就不是直接死命令对象到底怎么做事情。而是发送命令,接收对象根据发送者发送的命令执行代码。 命令模式干什么 命令模式将我们

thumbnail of the cover of the post

精读C++20设计模式——行动型设计模式:责任链

精读C++20设计模式——行动型设计模式:责任链 前言 责任链将会是我们的第一个行动型设计模式。我需要强调的是——这一蔟设计模式实际上谈不上有更加集合的设计意图,更多的像是补足程序设计除了创建和静态架构本身,剩下的动态运行交互的部分。责任链就隶属于此。 什么是责任链 责任链是这样的一种追责模式:,我

thumbnail of the cover of the post

精读C++20设计模式——结构型设计模式:代理模式

精读C++20设计模式——结构型设计模式:代理模式 前言 到最后一个了!我们马上就要结束结构型设计模式的学习了!代理模式是一个使用极其广泛的设计模式!如果你不相信,我们可以马上来看看他到底多么的常见。 第一个例子:智能指针 一反常态,我先不说代理模式是啥。我们先来看C++ RAII一个永恒的话题——

thumbnail of the cover of the post

精读C++20设计模式——结构型设计模式:享元模式

精读C++20设计模式——结构型设计模式:享元模式 前言 现在我们来仔细学习一下享元模式:Flyweight,但是我觉得好像叫 Token 或者是 Cookie更加的合适(原书并列的说,笔者认为后两个说辞我显然更加能接受和理解),它主要是尝试解决一种性能问题——我们可不可以复用一些已经有的东西呢(注

thumbnail of the cover of the post

精读C++20设计模式——结构型设计模式:组合模式

精读C++20设计模式——结构型设计模式:组合模式 组合模式不是说的将对象组合起来构成一个新对象——他不是这个意思!但是实际上,他也确实是这个意思:我这么说很奇怪。因为组合模式不打算将成员们物理组合,而是逻辑组合。举个例子:我们想要为不同对象的相似逻辑提供同一接口。组合模式就是在这个时候发挥它的功能

thumbnail of the cover of the post