23种设计模式(C++版)

设计模式按目的可分为创建型、结构型和行为型,按范围又可分为类模式和对象模式

使用频繁程度:

抽象工厂模式(Abstract Factory) ★★★★★

建造者模式(Builder) ★★☆☆☆

工厂方法模式(Factory Method) ★★★★★

原型模式(Prototype) ★★★☆☆

单例模式(Singleton) ★★★★☆

 

适配器模式(Adapter) ★★★★☆

桥接模式(Bridge) ★★★☆☆

组合模式(Composite) ★★★★☆

装饰模式(Decorator) ★★★☆☆

外观模式(Facade) ★★★★★

享元模式(Flyweight) ★☆☆☆☆

代理模式(Proxy) ★★★★☆

 

职责链模式(Chain of Responsibility) ★★☆☆☆

命令模式(Command) ★★★★☆

解释器模式(Interpreter) ★☆☆☆☆

迭代器模式(Iterator) ★★★★★

中介者模式(Mediator) ★★☆☆☆

备忘录模式(Memento) ★★☆☆☆

观察者模式(Observer) ★★★★★

状态模式(State) ★★★☆☆

策略模式(Strategy) ★★★★☆

模板方法模式(Template Method) ★★★☆☆

访问者模式(Visitor) ★☆☆☆☆

 
 1.单例模式

一、模式定义

确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。

 

 

 

 

二、模式动机

  1. 确保一个类只有一个实例并且这个实例易于被访问
  2. 让类自身负责创建和保存它的唯一实例,并保证不能创建其他实例,并且提供一个访问该实例的方法

三、例子

         线程池、打印池

四、优缺点

  优点:

    提供了对唯一实例的受控访问

    可以节约系统资源,提高系统的性能

    允许可变数目的实例(多例类)

       缺点:

         扩展困难(缺少抽象层)

  单例类的职责过重

  由于自动垃圾回收机制,可能会导致共享的单例对象的状态丢失

五、示例代码

         饿汉模式

         懒汉模式

 

源码与文档详见https://github.com/jest549/DesignPattern/tree/master/23%E7%A7%8D%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F

 
posted @   jest549  阅读(4627)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示