美文网首页
饿汉单例模式 C++实现

饿汉单例模式 C++实现

作者: 假程序员 | 来源:发表于2019-03-10 20:52 被阅读0次
//
//  main.cpp
//  Hunger_Singleton_pattern
//
//  Created by apple on 2019/3/10.
//  Copyright © 2019年 apple. All rights reserved.
//

#include <iostream>

class Example
{
private:
    static Example *single;
    Example();
public:
    static Example *GetSingleton();
    void test();
};

Example *Example::single = new Example();
Example::Example(){}
Example *Example::GetSingleton()
{
    return single;
}
void Example::test()
{
    std::cout<<this<<std::endl;
}

int main(int argc, const char * argv[]) {
    Example *a = Example::GetSingleton();
    Example *b = Example::GetSingleton();
    a->test();
    b->test();
    return 0;
}
0x10055b9b0
0x10055b9b0
Program ended with exit code: 0
    饿汉单例模式,什么是饿汉单例模式?饿汉单例模式是单例模式的一种实现方式,其中饿汉二字表示很迫切的需要该对象实例,所以在类加载时就需要创建该单例对象实例。
    如何达到该目的呢?我们知道静态方法在类加载的时候装载,所以通过一个静态方法,在该静态方法中返回一个静态变量可以实现单例模式。那么要实现饿汉单例模式需要进行什么样的特殊处理呢?因为饿汉模式是迫切的需要该对象实例,那么我们可以在类加载的时候,一并创建该单例对象,即给单例对象赋值。
    根据c++语法,在c++中,初始化静态变量需要在类外初始化,所以通过在类外初始化该静态变量,即可实现用静态方法返回一个静态变量。
    饿汉单例模式的静态变量的初始化由C++完成,规避了线程安全问题。所以饿汉单例模式是线程安全的。并且在大多数情况下使用饿汉单例模式是没有问题的。

相关文章

  • Android设计模式总结

    单例模式:饿汉单例模式://饿汉单例模式 懒汉单例模式: Double CheckLock(DCL)实现单例 Bu...

  • Java单例模式

    1. 实现单例模式 饿汉模式和懒汉模式单例模式根据实例化时机分为饿汉模式和懒汉模式。饿汉模式,是指不等到单例真正使...

  • 单例模式

    饿汉模式: 懒汉模式: Double CheckLock(DCL)实现单例 静态内部类实现单例 枚举单例 使用容器...

  • 2018-12-04

    单例模式 目录 -饿汉模式 -懒汉模式 - 双重检测 - 静态内部类 - 枚举实现 - 容器实现 饿汉模式 代码 ...

  • 单例模式之枚举类enum

    通过枚举实现单例模式 枚举类实现单例模式的优点 对于饿汉式单例模式和懒汉式单例模式了解的同学,使用以上两种单例模式...

  • 设计模式--单例模式

    单例模式概述 单例模式实现方式 为什么要使用单例模式 单例模式实现方式 饿汉式 类加载后就会将对象加载到内存中,保...

  • 单例模式

    说到单例模式,大家应该都不陌生,毕竟它是应用最广泛的模式之一。 单例模式的主要实现形式 饿汉模式 饿汉模式是在声明...

  • 单例模式的双重加锁实现

    本文从单例模式的一般实现方式开始说起,逐步深入到双重加锁实现。 一、饿汉模式 首先介绍一下最简单的单例模式——饿汉...

  • 单例模式

    什么是单例模式? 一个类只允许创建一个实例,那个类就是单例类。这个模式就是单例模式。单例模式实现方式:饿汉式:实现...

  • 饿汉单例模式 C++实现

网友评论

      本文标题:饿汉单例模式 C++实现

      本文链接:https://www.haomeiwen.com/subject/vrbppqtx.html