Методы реализации шаблона проектирования Singleton на разных языках программирования

В компьютерном программировании шаблон проектирования «singleton» используется для того, чтобы класс имел только один экземпляр и предоставлял глобальную точку доступа к нему. Вот несколько способов реализации синглтона на разных языках программирования:

  1. Синглтон в Java:

    public class Singleton {
    private static Singleton instance;
    private Singleton() {
        // Private constructor to prevent instantiation
    }
    public static Singleton getInstance() {
        if (instance == null) {
            synchronized (Singleton.class) {
                if (instance == null) {
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }
    }
  2. Синглтон в C#:

    public class Singleton {
    private static Singleton instance;
    private Singleton() {
        // Private constructor to prevent instantiation
    }
    public static Singleton Instance {
        get {
            if (instance == null) {
                lock (typeof(Singleton)) {
                    if (instance == null) {
                        instance = new Singleton();
                    }
                }
            }
            return instance;
        }
    }
    }
  3. Синглтон в Python:

    class Singleton:
    _instance = None
    def __new__(cls, *args, kwargs):
        if not cls._instance:
            cls._instance = super().__new__(cls, *args, kwargs)
        return cls._instance
  4. Синглтон в JavaScript:

    const Singleton = (function () {
    let instance;
    function createInstance() {
        // Singleton logic here
        return {
            // Singleton methods and properties
        };
    }
    return {
        getInstance: function () {
            if (!instance) {
                instance = createInstance();
            }
            return instance;
        }
    };
    })();