@ludie
Синглтон (Singleton) - это порождающий шаблон проектирования, который гарантирует, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к этому экземпляру.
Существует несколько способов реализации синглтона в Java:
1 2 3 4 5 6 7 8 9 10 11 12 |
public class Singleton { private static Singleton instance; private Singleton() {} public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public class Singleton { private static Singleton instance; private Singleton() {} static { instance = new Singleton(); } public static Singleton getInstance() { return instance; } } |
1 2 3 4 5 6 7 8 9 10 11 |
public class Singleton { private Singleton() {} private static class SingletonHolder { private static final Singleton INSTANCE = new Singleton(); } public static Singleton getInstance() { return SingletonHolder.INSTANCE; } } |
1 2 3 4 5 6 7 8 9 10 11 12 |
public class Singleton { private static Singleton instance; private Singleton() {} public static synchronized Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } } |
Каждый из этих способов имеет свои преимущества и недоста