On Friday, 31 January 2014 at 10:20:45 UTC, Dejan Lekic wrote:
I was thinking about implementing a typical Java singleton in D, and then decided to first check whether someone already did that, and guess what - yes, someone did. Chech this URL: http://dblog.aldacron.net/2007/03/03/singletons-in-d/

Something like this (taken from the article above) in the case you do not want lazy initialisation:

    class Singleton2(T)
    {
    public:
        static const T instance;

    private:
        this() {}

        static this() { instance = new T; }
    }

    class TMySingleton2 : Singleton!(TMySingleton2)
    {
    }

Something like this (taken from the article above) in the case you want lazy initialisation:

    class Singleton(T)
    {
    public:
        static T instance()
        {
            if(_instance is null) _instance = new T;
            return _instance;
        }

    private:
        this() {}

        static T _instance;
    }

    class TMySingleton : Singleton!(TMySingleton)
    {
    }

If there are some Java programmers around who are curious how is Java version done: http://www.javaworld.com/article/2073352/core-java/simply-singleton.html

Why is someone interested in implementing such an Ani Pattern like Singletons? In most of all cases Singletons are misused.

Reply via email to