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) ★☆☆☆☆

所有源码详见 https://github.com/jest549/DesignPattern

1.单例模式
一、模式定义

确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。
在这里插入图片描述
二、模式动机

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

     线程池、打印池

四、优缺点

优点:

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

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

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

   缺点:

     扩展困难(缺少抽象层)

单例类的职责过重

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

五、示例代码

     饿汉模式

     懒汉模式

源码与文档详见
https://github.com/jest549/DesignPattern
https://github.com/549jest549/DesignPattern

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值