Design pattern (Singleton)

Singleton
 Порождающий шаблон проектирования, гарантирующий, что в однопоточном приложении будет единственный экземпляр класса с глобальной точкой доступа.


Без внутренних классов (ленивая синхронизированная реализация).


public class Singleton {
        private static volatile Singleton instance;
    
        public static Singleton getInstance() {
        Singleton localInstance = instance;
        if (localInstance == null) {
            synchronized (Singleton.class) {
                localInstance = instance;
                if (localInstance == null) {
                    instance = localInstance = new Singleton();
                }
            }
        }
        return localInstance;
    }
}

Без внутренних классов (ленивая несинхронизированная реализация).


public class Singleton {
  private static Singleton instance;
  private Singleton () {}

  public static Singleton getInstance() {
    if (instance == null) {
      instance = new Singleton();
    }
    return instance;
  }
}
public class Singleton {  
   private Singleton() {}

   private static class SingletonHolder {  
      public static final Singleton instance = new Singleton();  
   }  
   
   public static Singleton getInstance()  {  
      return SingletonHolder.instance;  
   }  
}

Комментариев нет:

Отправить комментарий