C++,设计模式,【目录篇】

文章目录

  • [1. 简介](#1. 简介)
  • [2. 设计模式的分类](#2. 设计模式的分类)
    • [2.1 创建型模式(Creational Patterns):](#2.1 创建型模式(Creational Patterns):)
    • [2.2 结构型模式(Structural Patterns):](#2.2 结构型模式(Structural Patterns):)
    • [2.3 行为型模式(Behavioral Patterns):](#2.3 行为型模式(Behavioral Patterns):)
  • [3. 使用设计模式的好处](#3. 使用设计模式的好处)
  • 参考

1. 简介

设计模式(Design Patterns)是软件工程中针对常见问题的可重用解决方案。它们不是具体的代码,而是经过验证的最佳实践,用于解决特定场景下的设计问题。设计模式最早由 Erich Gamma 等人在《设计模式:可复用面向对象软件的基础》一书中提出,共包含 23 种经典模式。


2. 设计模式的分类

2.1 创建型模式(Creational Patterns):

解决对象创建的问题,隐藏创建逻辑。
包括:
C++,设计模式,【单例模式】
C++,设计模式,【工厂方法模式】
C++,设计模式,【抽象工厂模式】
C++,设计模式,【建造者模式】
C++,设计模式,【原型模式】


2.2 结构型模式(Structural Patterns):

解决类和对象的组合问题,形成更大的结构。
包括:
C++,设计模式,【适配器模式】
C++,设计模式,【代理模式】
C++,设计模式,【装饰器模式】
C++,设计模式,【外观模式】
C++,设计模式,【桥接模式】
C++,设计模式,【组合模式】
C++,设计模式,【享元模式】
C++,设计模式,【观察者模式】


2.3 行为型模式(Behavioral Patterns):

解决对象之间的职责分配和通信问题。
包括:
C++,设计模式,【备忘录模式】
C++,设计模式,【模板方法式】
C++,设计模式,【迭代器模式】
C++,设计模式,【状态模式】
C++,设计模式,【责任链模式】
C++,设计模式,【解释器模式】
C++,设计模式,【访问者模式】


3. 使用设计模式的好处

  1. 提高代码的可重用性:

    • 设计模式提供了经过验证的解决方案,可以直接应用于类似问题,减少重复代码。
  2. 提高代码的可维护性:

    • 设计模式使代码结构清晰,易于理解和修改。
  3. 提高代码的扩展性:

    • 设计模式通常遵循开闭原则(对扩展开放,对修改关闭),使系统更容易扩展。
  4. 提高代码的灵活性:

    • 设计模式通过解耦和抽象,使代码更灵活,适应需求变化。
  5. 提高团队协作效率:

    • 设计模式是通用的设计语言,团队成员可以快速理解代码的设计意图。
  6. 降低代码的复杂度:

    • 设计模式通过抽象和封装,将复杂问题分解为简单模块。

参考

【1】大话设计模式

【2】大丙课堂

【3】菜鸟编程,设计模式

【4】Boolan首席软件专家李建忠《C++设计模式》课程

【5】设计模式,我悟了!

【6】卡码网设计模式精讲

【7】卡码网设计模式专题

【8】C++设计模式

相关推荐
看到我,请让我去学习1 小时前
OpenCV编程- (图像基础处理:噪声、滤波、直方图与边缘检测)
c语言·c++·人工智能·opencv·计算机视觉
xiaolang_8616_wjl9 小时前
c++文字游戏_闯关打怪2.0(开源)
开发语言·c++·开源
夜月yeyue9 小时前
设计模式分析
linux·c++·stm32·单片机·嵌入式硬件
收破烂的小熊猫~10 小时前
《Java修仙传:从凡胎到码帝》第四章:设计模式破万法
java·开发语言·设计模式
无小道10 小时前
c++-引用(包括完美转发,移动构造,万能引用)
c语言·开发语言·汇编·c++
FirstFrost --sy12 小时前
数据结构之二叉树
c语言·数据结构·c++·算法·链表·深度优先·广度优先
Tanecious.12 小时前
C++--map和set的使用
开发语言·c++
Yingye Zhu(HPXXZYY)12 小时前
Codeforces 2021 C Those Who Are With Us
数据结构·c++·算法
佛祖让我来巡山12 小时前
【工厂和策略设计模式妙用】解决接口选择与多重if-else 问题
设计模式·策略模式·工厂模式
liulilittle13 小时前
LinkedList 链表数据结构实现 (OPENPPP2)
开发语言·数据结构·c++·链表