精读C++20设计模式——行动型设计模式:责任链
精读C++20设计模式——行动型设计模式:责任链 前言 责任链将会是我们的第一个行动型设计模式。我需要强调的是——这一蔟设计模式实际上谈不上有更加集合的设计意图,更多的像是补足程序设计除了创建和静态架构本身,剩下的动态运行交互的部分。责任链就隶属于此。 什么是责任链 责任链是这样的一种追责模式:,我
精读C++20设计模式——行动型设计模式:责任链 前言 责任链将会是我们的第一个行动型设计模式。我需要强调的是——这一蔟设计模式实际上谈不上有更加集合的设计意图,更多的像是补足程序设计除了创建和静态架构本身,剩下的动态运行交互的部分。责任链就隶属于此。 什么是责任链 责任链是这样的一种追责模式:,我
精读C++20设计模式——结构型设计模式:代理模式 前言 到最后一个了!我们马上就要结束结构型设计模式的学习了!代理模式是一个使用极其广泛的设计模式!如果你不相信,我们可以马上来看看他到底多么的常见。 第一个例子:智能指针 一反常态,我先不说代理模式是啥。我们先来看C++ RAII一个永恒的话题——
精读C++20设计模式——结构型设计模式:享元模式 前言 现在我们来仔细学习一下享元模式:Flyweight,但是我觉得好像叫 Token 或者是 Cookie更加的合适(原书并列的说,笔者认为后两个说辞我显然更加能接受和理解),它主要是尝试解决一种性能问题——我们可不可以复用一些已经有的东西呢(注
精读C++20设计模式——结构型设计模式:组合模式 组合模式不是说的将对象组合起来构成一个新对象——他不是这个意思!但是实际上,他也确实是这个意思:我这么说很奇怪。因为组合模式不打算将成员们物理组合,而是逻辑组合。举个例子:我们想要为不同对象的相似逻辑提供同一接口。组合模式就是在这个时候发挥它的功能
精读C++20设计模式——结构型设计模式:外观模式 前言 ⚠:笔者的这个设计模式谈不上了解,甚至可以说是现场学习的。所以这个部分会有所混杂GPT的生成内容,因此请您谨慎参考! 外观模式简直就是字如其名:我们一切跟着外观走——倒不如说,我们将接口实现分离的策略重新换了一个更好的名称:外观模式(Faca
精读C++20设计模式:结构型设计模式:装饰器模式 前言 扩展!这就是装饰器模式的功能!就像一棵圣诞树,你装饰了它,你就会得到一颗装饰后的圣诞树!它具备更好的观赏功能了!同时,他还具备一般圣诞树一样的功能。这种设计模式就是装饰器模式。 或者说——当我们想要更加有机(自由的?动态/静态都支持的?正交组
精读C++设计模式20 —— 结构型设计模式:桥接模式 这是我们的第二个设计模式——桥接模式!桥接模式更加直白了,我们之前的适配器更倾向于对接口本身的桥接,这里说的是系统协作的桥接。笔者认为他跟适配器区别谈不上很大。但是还是要仔细说一说这个桥接模式,以及我们下面要引出的,笔者最最常用的pImpl法,
精读C++20设计模式——结构型设计模式:适配器模式 前言 现在我们的设计模式学习之路走到了第二个大部分,也就是结构型设计模式,现在我们来到了设计模式的一个核心。前面的创造型,是在关心我们一个子程序的起点——一些对象创建的时候我们如何设计对象的创建,让我们的程序有一个好的起头。那么这里,也就是程序在
精读C++20设计模式——创造型设计模式:单例模式 我当时读到这里的时候更多的是惊讶,因为作者并不喜欢单例模式。当然单例模式的确存在它的意义。在很多场景下,如果我们期待全局程序总是访问唯一对象的情况下,我们才会去使用单例模式。比如说——全局唯一的数据库,全局唯一的日志对象。这个时候,单例模式就会显得
精读《C++20设计模式》——创造型设计模式:原型模式 现在我们来到了第三个创造型的设计模式,也就是Prototype,原型模式中的“原型”指的是一个被克隆的原始对象实例。听着好像有点奇怪。但是别着急,咱们慢慢来谈论这个设计模式(我需要承认一点,这个设计模式我几乎没有自己设计过,用的时候也是用过别人