单例模式(Singleton Pattern)

单例模式(Singleton Pattern)是一种创建型设计模式,用于确保一个类只有一个实例,并提供全局访问点来获取该实例。

单例模式的特点是:

  1. 只允许类创建一个实例。
  2. 提供一个全局访问点来获取该实例。
  3. 对外部代码隐藏实例化过程,使得外部代码无法直接创建实例。

以下是一个使用C++实现的单例模式示例:

#include <iostream>

class Singleton {
public:
    // 获取单例对象的静态方法
    static Singleton* getInstance() {
        // 如果实例尚未创建,则创建一个新实例
        if (instance == nullptr) {
            instance = new Singleton();
        }
        return instance;
    }

    // 示例方法
    void showMessage() {
        std::cout << "Hello, I am a singleton object." << std::endl;
    }

private:
    // 将构造函数、拷贝构造函数和赋值运算符设为私有,禁止外部代码创建多个实例或复制实例
    Singleton() {}
    Singleton(const Singleton&) {}
    Singleton& operator=(const Singleton&) { return *this; }

    static Singleton* instance; // 单例对象指针

};

Singleton* Singleton::instance = nullptr; // 初始化静态成员变量

int main() {
    // 获取单例对象
    Singleton* singleton = Singleton::getInstance();

    // 使用单例对象
    singleton->showMessage(); // 输出: Hello, I am a singleton object.

    return 0;
}

在上述示例中,Singleton类通过一个静态方法getInstance()来获取单例对象。在getInstance()方法中,首先检查是否已经创建了实例,如果尚未创建,则创建一个新的实例并将其赋值给静态成员变量instance,然后返回该实例。

Singleton类的构造函数、拷贝构造函数和赋值运算符都被设为私有,以防止外部代码直接创建多个实例或复制实例。

main()函数中,我们通过Singleton::getInstance()获取单例对象,并使用该对象调用showMessage()方法来展示单例对象的功能。

单例模式可用于需要全局访问一个共享资源或提供统一的服务实例的场景。它确保只有一个实例存在,并提供了一种简单的方式来获取该实例。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值