- 博客(23)
- 收藏
- 关注
原创 C++设计模式(二十):访问者模式
访问者模式旨在将数据结构与在该数据结构上执行的操作分离,从而使得添加新的操作变得更容易,而无需修改数据结构本身。访问者模式解决在稳定数据结构和易变操作之间的耦合问题,使得操作可以独立于数据结构变化。
2025-04-18 00:00:00
162
原创 C++设计模式(二十一):解释器模式
解释器模式定义一种语言的文法表示,并创建一个解释器,该解释器能够解释该语言中的句子。解释器模式用于构建一个能够解释特定语言或文法的句子的解释器。类似于编译原理文法。
2025-04-18 00:00:00
146
原创 C++设计模式(十九):中介者模式
中介者模式通过引入一个中介者对象来封装和协调多个对象之间的交互,从而降低对象间的耦合度。中介者模式解决对象间复杂的一对多关联问题,避免对象之间的高度耦合,简化系统结构。
2025-04-17 00:00:00
389
原创 C++设计模式(十七):组合模式
组合模式可以简化树形结构中对象的处理,无论它们是单个对象还是组合对象,解耦客户端代码与复杂元素的内部结构,使得客户端可以统一处理所有类型的节点。组合模式将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。
2025-04-16 00:00:00
179
原创 C++设计模式(十五):备忘录模式
备忘录模式可以在不破坏封装性的前提下,捕获一个对象的内部状态,并允许在对象之外保存和恢复这些状态。备忘录模式允许捕获并保存一个对象的内部状态,以便在将来可以恢复到该状态,实现撤销和回滚操作。
2025-04-14 00:00:00
209
原创 C++设计模式(十四):原型模式
原型模式实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。
2025-04-13 01:30:00
218
原创 C++设计模式(十八):桥接模式
桥接模式用于将抽象部分与实现部分分离,使得它们可以独立地变化。桥接模式避免了使用继承导致的类爆炸问题,提供更灵活的扩展方式。
2025-04-12 21:50:06
149
原创 C++设计模式(十六):迭代器模式
迭代器模式可以提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。迭代器模式提供一种统一的方法来遍历不同的聚合对象。
2025-04-12 21:38:19
190
原创 C++设计模式(十三):生成器模式
生成器模式可以解决以下问题:在软件系统中,一个复杂对象的创建通常由多个部分组成,这些部分的组合经常变化,但组合的算法相对稳定。生成器模式将一个复杂的构建过程与其表示相分离,使得同样的构建过程可以创建不同的表示。
2025-04-12 21:12:30
281
原创 C++设计模式(十二):命令模式
命令模式将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。命令模式解决在软件系统中请求者和执行者之间的紧耦合问题,特别是在需要对行为进行记录、撤销/重做或事务处理等场景。
2025-04-12 21:09:51
126
原创 C++设计模式(十一):享元模式
享元模式解决在系统中存在大量相同或相似对象时,消耗大量内存的问题。享元模式通过共享对象来减少创建大量相似对象时的内存消耗。
2025-04-12 20:56:17
228
原创 C++设计模式(十):模板模式
模板模式在父类中定义了算法的骨架,并允许子类在不改变算法结构的前提下重定义算法的某些特定步骤。模板模式解决在多个子类中重复实现相同的方法的问题,通过将通用方法抽象到父类中来避免代码重复。
2025-04-12 20:55:04
117
原创 C++设计模式(八):代理模式
代理模式解决的是在直接访问某些对象时可能遇到的问题,例如对象创建成本高、需要安全控制或远程访问等。代理模式为其他对象提供一种代理以控制对这个对象的访问。
2025-02-16 10:45:10
169
原创 C++设计模式(七):策略模式
策略模式解决在多种相似算法存在时,使用条件语句(如 if…else)导致的复杂性和难以维护的问题。策略模式将每个算法封装起来,使它们可以互换使用。
2025-02-15 10:53:18
127
原创 C++设计模式(六):状态模式
状态模式允许一个对象在其内部状态改变时改变其行为,看起来就像是改变了其类一样。状态模式解决对象行为依赖于其状态的问题,使得对象可以在状态变化时切换行为。
2025-02-13 21:59:22
241
原创 C++设计模式(五):外观模式
外观模式为一个复杂的子系统提供一个一致的高层接口。这样,客户端代码就可以通过这个简化的接口与子系统交互,而不需要了解子系统内部的复杂性。
2025-02-10 21:27:08
204
原创 WebAssembly 使用npm init wasm-app www 创建模板文件产生“node:events:493 throw er、Error: spawn git ENOENT等错误”
针对webassembly的一个错误的处理。
2024-03-29 18:57:40
641
2
原创 CCFCSP202312-2 因子化简(c++模拟80分题解)
此题大意要求我们将一个数字分解成多个质数(某次幂)相乘的形式,并且如果其中某个质数的幂次小于题目所指定的k次,则输出的sum大小不变,否则sum*该质数的具体次幂。此题通过暴力模拟可以得到80分,如果还可以优化请在评论区交流,本人水平太菜轻喷哈哈。在之后代码中,使用vector可以得到更少的运行时间和空间。
2023-12-15 14:34:15
955
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅