计算机系统应用教程网站

网站首页 > 技术文章 正文

23种设计模式之---单例模式(c++)

btikc 2024-09-24 08:07:35 技术文章 16 ℃ 0 评论

单例模式就是指系统的整个生命周期,该类只产生一个实例化的对象,并提供一个访问该实例的全局接口。

为什么设计单例模式呢

最主要的原因就是在操作一些公共资源的场景时,能避免多个实例化对象引起的复杂操作,方便控制。例如,设置全局配置信息时,使用单例模式来实现配置管理器,避免程序多个实例重复加载和不一致。再比如,线程池、数据库连接池,单例模式实现资源池,可以确保整个程序共享一个资源池,提高资源利用率和性能。

单例模式必备的特点

单例类的构造函数和析构函数必须设为私有,以防止外部直接实例化对象。

单例类必须提供一个类型为该类的静态成员变量,以及供外部获取实例对象的静态方法接口,该静态方法会调用私有构造函数来创建对象,赋值给该静态成员变量,此后所有外部调用该静态方法都会返回该静态成员变量。

单例模式实现

单例模式的实现分为懒汉式和饿汉式。懒汉式指的是系统启动后,实例并不存在,只有当需要该实例时才会创建,懒汉模式在不加锁的情况下是线程不安全的。饿汉式指的是系统启动后就实例化单例对象,需要时直接调用,这种方式是线程安全的。

懒汉式的例子:

头文件

源文件

饿汉式:

程序一开始就实例化单例对象

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表