Design Patterns - Singleton (Singleton) (a model).

// The following code Source: Design Solutions for fine pattern -GoF 23 design patterns to achieve desorption and C ++ source code

//Singleton.h

#pragma once
#include<iostream>
class Singleton {
public:
    static Singleton* Instance();
protected:
    Singleton();
private:
    static Singleton* _instance;
};

//Singleton.cpp

#include"Singleton.h"
#include<iostream>
Singleton* Singleton::_instance = 0;
Singleton::Singleton(){
    std::cout << "Create A Singleton Instance." << std::endl;
}
Singleton* Singleton::Instance()
{
    if (_instance == 0)
        _instance = new Singleton();
    return _instance;
}

//main.cpp

#include"Singleton.h"
#include<iostream>

int main(int args, char* argv)
{
    Singleton* I = Singleton::Instance();
    return 0;
}

Guess you like

Origin www.cnblogs.com/fourmi/p/12074961.html