zoukankan      html  css  js  c++  java
  • 设计模式之单例模式

    单例模式

    目的:

    Ensure a class only has one instance, and provide a global point of access to it.

    保证一个类仅有一个实例,并提供一个访问它的全局访问点。

    C++实现 

    在类中,定义一个私有静态成员对象;将构造函数也定义为私有的,保证类只有一个实现;提供一个公有静态成员函数,用来返回类内唯一的构造实例。

    示例代码

    //Singleton.h
    
    #include <iostream>
    using namespace std;
    
    class Singleton
    {
    private:
        static Singleton *minstance;
        Singleton();
    public:
        static Singleton *getInstance();
    };
    
    //Singleton.cpp
    
    Singleton::Singleton()
    {
        cout<<"private construct singleton"<<endl;
    }
    
    Singleton* Singleton::minstance =NULL; //必须在此处声明,否则报错
    
    Singleton * Singleton::getInstance()
    {
        if (minstance==NULL)
        {
            minstance=new Singleton();
        }
        
        return minstance;
    }
    
    //main.cpp
    #include "Singleton.h"
    
    void main()
    {
        Singleton* singleton1 = Singleton::getInstance();
        Singleton* singleton2 = Singleton::getInstance();
    
        if (singleton1 == singleton2)
            fprintf(stderr,"singleton1 = singleton2
    ");
    
    
        return;
    
    }
    View Code

    参考资料

    戏说Singleton模式

    C++中的单例模式

    3 C++设计模式--单例模式

     

  • 相关阅读:
    112.路径总和
    二叉树的中序遍历
    HTML基础及案例
    web概念概述
    Spring JDBC
    数据库连接池
    JDBC连接池&JDBCTemplate
    JDBC
    MySQL多表&事务
    DCL
  • 原文地址:https://www.cnblogs.com/gjianw217/p/3870711.html
Copyright © 2011-2022 走看看