zoukankan      html  css  js  c++  java
  • 设计模式之单例模式(Singleton Pattern)C++实现

    单例模式(Singleton Pattern):这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

    主要解决:解决一个全局使用的类,频繁地创建和销毁

    缺点:没有接口,不能继承

    使用场景:产生唯一序列号、web中的计数器、消耗资源多的(I/O、数据库连接)

    注意

        1、单例类只能有一个实例。
        2、单例类必须自己创建自己的唯一实例。
        3、单例类必须给所有其他对象提供这一实例。

    代码

    1.single.h

    #pragma once
    class SingleObject
    {
    public:
    	static SingleObject* Instance();
    	
    	~SingleObject(void);
    
    	void showMessage();
    
    protected:
    	SingleObject(void);
    private:
    	static SingleObject* _instance;
    };

    2.single.cpp

    #include "StdAfx.h"
    #include "single.h"
    using namespace std;
    SingleObject::SingleObject(void)
    {
    }
    
    SingleObject* SingleObject::_instance = 0;
    
    SingleObject* SingleObject::Instance()
    {
    	if (_instance == 0)
    	{
    		_instance = new SingleObject();
    	}
    	return _instance;
    }
    
    void SingleObject::showMessage()
    {
    	cout << "Singleton Pattern" << endl;
    }
    
    SingleObject::~SingleObject(void)
    {
    }
    
    

    3.测试

    #include "stdafx.h"
    #include "single.h"
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	SingleObject* s1 = SingleObject::Instance(); 
    	s1->showMessage();
    
    	system("pause");
    	return 0;
    }


    生命不止,奋斗不息!
  • 相关阅读:
    转载:网关的概念以及形象的比喻
    IP地址的分类
    Linux TOP 交互命令
    Unix系统引导过程(简单步骤)
    常用shell命令中你所不熟悉的参数
    3.通过现有的PDB创建一个新的PDB
    2.oracle 12c 创建-访问-关闭-删除PDB
    1.oracle 12c基础
    笔记本设置无线热点
    Pivot 和 Unpivot
  • 原文地址:https://www.cnblogs.com/huzongzhe/p/6735200.html
Copyright © 2011-2022 走看看